#0ee8fa5dc525c1a1f23fc6911e921e4a
from core.basic.skill import PassiveSkill, ActiveSkill, get_data
from core.basic.character import Character
prefix = "knight/elven_knight/cn/skillDetail"

# 盾挑
# knight/elven_knight/3c5604bdbb0240b8f130f59ab40509c3
# 0ee8fa5dc525c1a1f23fc6911e921e4a/3c5604bdbb0240b8f130f59ab40509c3
class Skill0(ActiveSkill):
    """
        用盾牌攻击敌人并使其浮空。\n
        转职为混沌魔灵或龙骑士后， 技能类型变为独立攻击力。\n
        [帝国骑士的基本技能。\n
        与敌人对战时， 一边防守， 一边寻找敌人的弱点， 看准时机使用盾牌进行强力的攻击， 让敌人防不胜防。\n
        只有完全掌握盾挑的人才有资格当上骑士团团长， 千万不要小看这个技能。]
    """
    name = "盾挑"
    learnLv = 1
    masterLv = 10
    maxLv = 20
    position = 3 #TODO
    rangeLv = 3
    cd = 2
    uuid = "3c5604bdbb0240b8f130f59ab40509c3"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 盾牌挑击攻击力 : {value0}%
    # REMOVE: data0 = [0, 130, 151, 171, 192, 213, 234, 254, 275, 296, 317, 337, 358, 379, 399, 420, 441, 462, 482, 503, 524]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 浮空力比率 : {value1}%
    # REMOVE: data1 = [0, 450, 455, 459, 464, 468, 473, 477, 482, 486, 491, 495, 500, 504, 509, 513, 518, 522, 527, 531, 536]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)

# 强踢
# knight/elven_knight/9dda3f4a849dba1a288dd65e116860f2
# 0ee8fa5dc525c1a1f23fc6911e921e4a/9dda3f4a849dba1a288dd65e116860f2
class Skill1(ActiveSkill):
    """
        使用脚踢攻击前方敌人， 威势之大甚至能够激起地上的沙石。\n
        沙石会使敌人进入失明和减速状态。 守护者在沙石的掩盖之下会增加回避率。\n
        [帝国的大竞技场中经常能够看到这个技能的身影。 虽然手段有些卑劣， 但是因为它的实用性， 即使是把名誉看的很重的骑士们也会使用。\n
        只有为了国家和君主愿意牺牲小我的人才是真正的骑士。]
    """
    name = "强踢"
    learnLv = 1
    masterLv = 60
    maxLv = 70
    position = 5 #TODO
    rangeLv = 2
    cd = 5
    mp = [2, 350]
    uuid = "9dda3f4a849dba1a288dd65e116860f2"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 脚踢攻击力 : {value0}%
    # REMOVE: data0 = [0, 2400, 2643, 2887, 3130, 3374, 3617, 3861, 4104, 4348, 4591, 4835, 5078, 5322, 5565, 5809, 6052, 6296, 6539, 6783, 7026, 7270, 7513, 7757, 8000, 8243, 8487, 8730, 8974, 9217, 9461, 9704, 9948, 10191, 10435, 10678, 10922, 11165, 11409, 11652, 11896, 12139, 12383, 12626, 12870, 13113, 13357, 13600, 13843, 14087, 14330, 14574, 14817, 15061, 15304, 15548, 15791, 16035, 16278, 16522, 16765, 17009, 17252, 17496, 17739, 17983, 18226, 18470, 18713, 18957, 19200]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 减速几率 : {value1}%
    # REMOVE: data1 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 敌人移动速度减少 : {value2}%
    # REMOVE: data2 = [0, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 失明几率 : {value3}%
    # REMOVE: data3 = [0, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # 失明持续时间 : {value4}秒
    # REMOVE: data4 = [0, 1.5, 1.5, 1.5, 1.6, 1.6, 1.6, 1.7, 1.7, 1.7, 1.8, 1.8, 1.8, 1.9, 1.9, 1.9, 2, 2, 2, 2.1, 2.1, 2.1, 2.2, 2.2, 2.2, 2.3, 2.3, 2.3, 2.4, 2.4, 2.4, 2.5, 2.5, 2.5, 2.6, 2.6, 2.6, 2.7, 2.7, 2.7, 2.8, 2.8, 2.8, 2.9, 2.9, 2.9, 3, 3, 3, 3.1, 3.1, 3.2, 3.2, 3.2, 3.3, 3.3, 3.3, 3.4, 3.4, 3.4, 3.5, 3.5, 3.5, 3.6, 3.6, 3.6, 3.7, 3.7, 3.7, 3.8, 3.8]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)
    # 回避率增加 : {value5}%
    # REMOVE: data5 = [0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20]# noqa: E501
    data5 = get_data(f'{prefix}/{uuid}', 5)

# 盾牌转换
# knight/elven_knight/8f73f243041c2d27739fe7696f02bf9b
# 0ee8fa5dc525c1a1f23fc6911e921e4a/8f73f243041c2d27739fe7696f02bf9b
class Skill2(ActiveSkill):
    """
        可以切换手中盾牌的样式。 完成盾牌任务后， 可以在装备栏中的盾牌库里可以要选择备选切换的盾牌。
    """
    name = "盾牌转换"
    learnLv = 1
    masterLv = 1
    maxLv = 1
    position = 2 #TODO
    rangeLv = 1
    cd = 10
    mp = [10, 10]
    uuid = "8f73f243041c2d27739fe7696f02bf9b"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501


# 后跳
# knight/elven_knight/7822d6d52e10964a6755f142c666b494
# 0ee8fa5dc525c1a1f23fc6911e921e4a/7822d6d52e10964a6755f142c666b494
class Skill3(ActiveSkill):
    """
        使自身向后方小跳并避开敌人的攻击。
    """
    name = "后跳"
    learnLv = 1
    masterLv = 1
    maxLv = 1
    position = 3 #TODO
    rangeLv = 1
    mp = [1, 1]
    uuid = "7822d6d52e10964a6755f142c666b494"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501


# 基础精通
# knight/elven_knight/5a56514f35cf0270ae8d6c65f8fefd78
# 0ee8fa5dc525c1a1f23fc6911e921e4a/5a56514f35cf0270ae8d6c65f8fefd78
class Skill4(PassiveSkill):
    """
        增加基本攻击、 前冲攻击、 跳跃攻击的攻击力。\n
        在决斗场中， 增益/减益技能、 被动技能的技能攻击力增加效果对[基础精通]无影响。
    """
    name = "基础精通"
    learnLv = 1
    masterLv = 115
    maxLv = 200
    position = 1 #TODO
    rangeLv = 1
    uuid = "5a56514f35cf0270ae8d6c65f8fefd78"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 基本攻击力变化率 : {value0}%
    # REMOVE: data0 = [0, 150, 158.7, 167.3, 176, 184.5, 193.2, 201.8, 210.5, 219.2, 227.7, 236.4, 245, 253.7, 262.2, 270.9, 284.3, 297.6, 311, 324.3, 337.7, 350.9, 364.2, 377.6, 390.9, 404.3, 417.6, 431, 444.3, 457.7, 471, 484.2, 497.6, 510.9, 524.3, 537.6, 551, 564.3, 577.7, 591, 604.4, 617.7, 630.9, 644.3, 657.6, 671, 684.3, 697.7, 711, 724.4, 737.7, 751.1, 764.3, 777.6, 791, 804.3, 817.7, 831, 844.4, 857.7, 871.1, 884.4, 897.8, 911, 924.3, 937.7, 951, 964.4, 977.7, 991.1, 1004.4, 1017.8, 1031.1, 1044.5, 1057.7, 1071, 1084.4, 1097.7, 1111.1, 1124.4, 1137.8, 1151.1, 1164.5, 1177.8, 1191, 1204.4, 1217.7, 1231.1, 1244.4, 1257.8, 1271.1, 1284.5, 1297.8, 1311.2, 1324.5, 1337.7, 1351.1, 1364.4, 1377.8, 1391.1, 1404.5, 1417.8, 1431.2, 1444.5, 1457.9, 1471.2, 1484.6, 1497.9, 1511.3, 1524.6, 1538, 1551.3, 1564.7, 1578, 1591.4, 1604.7, 1618.1, 1631.4, 1644.8, 1658.1, 1671.5, 1684.8, 1698.2, 1711.5, 1724.9, 1738.2, 1751.6, 1764.9, 1778.3, 1791.6, 1805, 1818.3, 1831.7, 1845, 1858.4, 1871.7, 1885.1, 1898.4, 1911.8, 1925.1, 1938.5, 1951.8, 1965.2, 1978.5, 1991.9, 2005.2, 2018.6, 2031.9, 2045.3, 2058.6, 2072, 2085.3, 2098.7, 2112, 2125.4, 2138.7, 2152.1, 2165.4, 2178.8, 2192.1, 2205.5, 2218.8, 2232.2, 2245.5, 2258.9, 2272.2, 2285.6, 2298.9, 2312.3, 2325.6, 2339, 2352.3, 2365.7, 2379, 2392.4, 2405.7, 2419.1, 2432.4, 2445.8, 2459.1, 2472.5, 2485.8, 2499.2, 2512.5, 2525.9, 2539.2, 2552.6, 2565.9, 2579.3, 2592.6, 2606, 2619.3, 2632.7, 2646, 2659.4, 2672.7, 2686.1, 2699.4, 2712.8, 2726.1, 2739.5]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 前冲攻击力变化率 : {value1}%
    # REMOVE: data1 = [0, 150, 158.7, 167.3, 176, 184.5, 193.2, 201.8, 210.5, 219.2, 227.7, 236.4, 245, 253.7, 262.2, 270.9, 284.3, 297.6, 311, 324.3, 337.7, 350.9, 364.2, 377.6, 390.9, 404.3, 417.6, 431, 444.3, 457.7, 471, 484.2, 497.6, 510.9, 524.3, 537.6, 551, 564.3, 577.7, 591, 604.4, 617.7, 630.9, 644.3, 657.6, 671, 684.3, 697.7, 711, 724.4, 737.7, 751.1, 764.3, 777.6, 791, 804.3, 817.7, 831, 844.4, 857.7, 871.1, 884.4, 897.8, 911, 924.3, 937.7, 951, 964.4, 977.7, 991.1, 1004.4, 1017.8, 1031.1, 1044.5, 1057.7, 1071, 1084.4, 1097.7, 1111.1, 1124.4, 1137.8, 1151.1, 1164.5, 1177.8, 1191, 1204.4, 1217.7, 1231.1, 1244.4, 1257.8, 1271.1, 1284.5, 1297.8, 1311.2, 1324.5, 1337.7, 1351.1, 1364.4, 1377.8, 1391.1, 1404.5, 1417.8, 1431.2, 1444.5, 1457.9, 1471.2, 1484.6, 1497.9, 1511.3, 1524.6, 1538, 1551.3, 1564.7, 1578, 1591.4, 1604.7, 1618.1, 1631.4, 1644.8, 1658.1, 1671.5, 1684.8, 1698.2, 1711.5, 1724.9, 1738.2, 1751.6, 1764.9, 1778.3, 1791.6, 1805, 1818.3, 1831.7, 1845, 1858.4, 1871.7, 1885.1, 1898.4, 1911.8, 1925.1, 1938.5, 1951.8, 1965.2, 1978.5, 1991.9, 2005.2, 2018.6, 2031.9, 2045.3, 2058.6, 2072, 2085.3, 2098.7, 2112, 2125.4, 2138.7, 2152.1, 2165.4, 2178.8, 2192.1, 2205.5, 2218.8, 2232.2, 2245.5, 2258.9, 2272.2, 2285.6, 2298.9, 2312.3, 2325.6, 2339, 2352.3, 2365.7, 2379, 2392.4, 2405.7, 2419.1, 2432.4, 2445.8, 2459.1, 2472.5, 2485.8, 2499.2, 2512.5, 2525.9, 2539.2, 2552.6, 2565.9, 2579.3, 2592.6, 2606, 2619.3, 2632.7, 2646, 2659.4, 2672.7, 2686.1, 2699.4, 2712.8, 2726.1, 2739.5]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 跳跃攻击力变化率 : {value2}%
    # REMOVE: data2 = [0, 150, 158.7, 167.3, 176, 184.5, 193.2, 201.8, 210.5, 219.2, 227.7, 236.4, 245, 253.7, 262.2, 270.9, 284.3, 297.6, 311, 324.3, 337.7, 350.9, 364.2, 377.6, 390.9, 404.3, 417.6, 431, 444.3, 457.7, 471, 484.2, 497.6, 510.9, 524.3, 537.6, 551, 564.3, 577.7, 591, 604.4, 617.7, 630.9, 644.3, 657.6, 671, 684.3, 697.7, 711, 724.4, 737.7, 751.1, 764.3, 777.6, 791, 804.3, 817.7, 831, 844.4, 857.7, 871.1, 884.4, 897.8, 911, 924.3, 937.7, 951, 964.4, 977.7, 991.1, 1004.4, 1017.8, 1031.1, 1044.5, 1057.7, 1071, 1084.4, 1097.7, 1111.1, 1124.4, 1137.8, 1151.1, 1164.5, 1177.8, 1191, 1204.4, 1217.7, 1231.1, 1244.4, 1257.8, 1271.1, 1284.5, 1297.8, 1311.2, 1324.5, 1337.7, 1351.1, 1364.4, 1377.8, 1391.1, 1404.5, 1417.8, 1431.2, 1444.5, 1457.9, 1471.2, 1484.6, 1497.9, 1511.3, 1524.6, 1538, 1551.3, 1564.7, 1578, 1591.4, 1604.7, 1618.1, 1631.4, 1644.8, 1658.1, 1671.5, 1684.8, 1698.2, 1711.5, 1724.9, 1738.2, 1751.6, 1764.9, 1778.3, 1791.6, 1805, 1818.3, 1831.7, 1845, 1858.4, 1871.7, 1885.1, 1898.4, 1911.8, 1925.1, 1938.5, 1951.8, 1965.2, 1978.5, 1991.9, 2005.2, 2018.6, 2031.9, 2045.3, 2058.6, 2072, 2085.3, 2098.7, 2112, 2125.4, 2138.7, 2152.1, 2165.4, 2178.8, 2192.1, 2205.5, 2218.8, 2232.2, 2245.5, 2258.9, 2272.2, 2285.6, 2298.9, 2312.3, 2325.6, 2339, 2352.3, 2365.7, 2379, 2392.4, 2405.7, 2419.1, 2432.4, 2445.8, 2459.1, 2472.5, 2485.8, 2499.2, 2512.5, 2525.9, 2539.2, 2552.6, 2565.9, 2579.3, 2592.6, 2606, 2619.3, 2632.7, 2646, 2659.4, 2672.7, 2686.1, 2699.4, 2712.8, 2726.1, 2739.5]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)

# 受身蹲伏
# knight/elven_knight/ce26c6b69d02a440a81b552bec94f03b
# 0ee8fa5dc525c1a1f23fc6911e921e4a/ce26c6b69d02a440a81b552bec94f03b
class Skill5(ActiveSkill):
    """
        使自身在倒地状态下迅速起身并采取蹲伏姿势； 蹲伏状态下， 自身会进入无敌状态， 效果持续一定时间。
    """
    name = "受身蹲伏"
    learnLv = 1
    masterLv = 10
    maxLv = 20
    position = 2 #TODO
    rangeLv = 1
    cd = 5
    mp = [1, 1]
    uuid = "ce26c6b69d02a440a81b552bec94f03b"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 蹲伏姿势最短无敌时间 : {value0}秒
    # REMOVE: data0 = [0, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 蹲伏姿势最长无敌时间 : {value1}秒
    # REMOVE: data1 = [0, 3, 4.5, 6, 7.5, 9, 10.5, 12, 13.5, 15, 16.5, 18, 19.5, 21, 22.5, 24, 25.5, 27, 28.5, 30, 31.5]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 起身时霸体时间 : {value2}秒
    # REMOVE: data2 = [0, 0.3, 0.33, 0.36, 0.4, 0.43, 0.46, 0.5, 0.53, 0.56, 0.6, 0.63, 0.66, 0.7, 0.73, 0.76, 0.8, 0.83, 0.86, 0.9, 0.93]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)

# 防具精通
# knight/elven_knight/892ef624d8bf3d7fc045f84825fd6104
# 0ee8fa5dc525c1a1f23fc6911e921e4a/892ef624d8bf3d7fc045f84825fd6104
class Skill6(PassiveSkill):
    """
        穿戴防具时， 可以增加各种属性。\n
        穿戴的防具越多， 效果越强； 可根据转职， 增加不同的属性种类及数值。
    """
    name = "防具精通"
    learnLv = 1
    masterLv = 1
    maxLv = 1
    position = 0 #TODO
    rangeLv = 1
    uuid = "892ef624d8bf3d7fc045f84825fd6104"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501


# 盾击
# knight/elven_knight/717f1e2104fe4b796f800352fa143ecc
# 0ee8fa5dc525c1a1f23fc6911e921e4a/717f1e2104fe4b796f800352fa143ecc
class Skill7(ActiveSkill):
    """
        挥舞盾牌对敌人进行强力攻击， 并使其进入眩晕状态。\n
        追加操作时可以提起盾牌向前突进。\n
        [厚重的盾牌本身就是一件强大的武器。 但如果你没有足够的力量的话还是放弃这个想法吧。]
    """
    name = "盾击"
    learnLv = 5
    masterLv = 60
    maxLv = 70
    position = 4 #TODO
    rangeLv = 2
    cd = 3
    mp = [5, 180]
    uuid = "717f1e2104fe4b796f800352fa143ecc"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 挥击攻击力 : {value0}%
    # REMOVE: data0 = [0, 1028, 1132, 1237, 1341, 1445, 1549, 1654, 1758, 1862, 1967, 2071, 2175, 2279, 2384, 2488, 2592, 2697, 2801, 2905, 3010, 3114, 3218, 3322, 3427, 3531, 3635, 3740, 3844, 3948, 4052, 4157, 4261, 4365, 4470, 4574, 4678, 4782, 4887, 4991, 5095, 5200, 5304, 5408, 5512, 5617, 5721, 5825, 5930, 6034, 6138, 6242, 6347, 6451, 6555, 6660, 6764, 6868, 6973, 7077, 7181, 7285, 7390, 7494, 7598, 7703, 7807, 7911, 8015, 8120, 8224]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 眩晕几率 : {value1}%
    # REMOVE: data1 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 眩晕持续时间 : {value2}秒
    # REMOVE: data2 = [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 追加操作时突进攻击力 : {value3}%
    # REMOVE: data3 = [0, 1028, 1132, 1237, 1341, 1445, 1549, 1654, 1758, 1862, 1967, 2071, 2175, 2279, 2384, 2488, 2592, 2697, 2801, 2905, 3010, 3114, 3218, 3322, 3427, 3531, 3635, 3740, 3844, 3948, 4052, 4157, 4261, 4365, 4470, 4574, 4678, 4782, 4887, 4991, 5095, 5200, 5304, 5408, 5512, 5617, 5721, 5825, 5930, 6034, 6138, 6242, 6347, 6451, 6555, 6660, 6764, 6868, 6973, 7077, 7181, 7285, 7390, 7494, 7598, 7703, 7807, 7911, 8015, 8120, 8224]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)

# 命运之轮
# knight/elven_knight/4655101518604f874721b3cc249aae10
# 0ee8fa5dc525c1a1f23fc6911e921e4a/4655101518604f874721b3cc249aae10
class Skill8(ActiveSkill):
    """
        使用盾牌将敌人拉过来后， 将其挑至空中禁锢在命运之轮中。\n
        对无法抓取的敌人不适用控制效果。\n
        转职为混沌魔灵或龙骑士后， 技能类型变为独立攻击力。\n
        [命运之轮开始旋转了。]
    """
    name = "命运之轮"
    learnLv = 5
    masterLv = 60
    maxLv = 70
    position = 2 #TODO
    rangeLv = 2
    cd = 8
    mp = [5, 249]
    uuid = "4655101518604f874721b3cc249aae10"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 拉扯攻击力 : {value0}%
    # REMOVE: data0 = [0, 1333, 1468, 1603, 1738, 1873, 2008, 2144, 2279, 2414, 2549, 2684, 2820, 2955, 3090, 3225, 3360, 3495, 3631, 3766, 3901, 4036, 4171, 4307, 4442, 4577, 4712, 4847, 4982, 5118, 5253, 5388, 5523, 5658, 5794, 5929, 6064, 6199, 6334, 6469, 6605, 6740, 6875, 7010, 7145, 7281, 7416, 7551, 7686, 7821, 7957, 8092, 8227, 8362, 8497, 8632, 8768, 8903, 9038, 9173, 9308, 9444, 9579, 9714, 9849, 9984, 10119, 10255, 10390, 10525, 10660]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 挑飞攻击力 : {value1}%
    # REMOVE: data1 = [0, 2856, 3146, 3436, 3726, 4016, 4305, 4595, 4885, 5175, 5465, 5754, 6044, 6334, 6624, 6914, 7203, 7493, 7783, 8073, 8362, 8652, 8942, 9232, 9522, 9811, 10101, 10391, 10681, 10971, 11260, 11550, 11840, 12130, 12419, 12709, 12999, 13289, 13579, 13868, 14158, 14448, 14738, 15028, 15317, 15607, 15897, 16187, 16477, 16766, 17056, 17346, 17636, 17925, 18215, 18505, 18795, 19085, 19374, 19664, 19954, 20244, 20534, 20823, 21113, 21403, 21693, 21982, 22272, 22562, 22852]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 命运之轮持续时间 : {value2}秒
    # REMOVE: data2 = [0, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)

# 自动防御
# knight/elven_knight/f2fb27162beb0b87a7cb9af7900e95f2
# 0ee8fa5dc525c1a1f23fc6911e921e4a/f2fb27162beb0b87a7cb9af7900e95f2
class Skill9(PassiveSkill):
    """
        学习此技能后， 在任何情况下都有几率抵挡敌人的攻击并降低所受伤害。\n
        [利剑和盾牌从来都不是骑士们杀伐的理由， 因为他们知道在利剑和盾牌的后面有着他们要保护的人。]
    """
    name = "自动防御"
    learnLv = 5
    masterLv = 10
    maxLv = 20
    position = 9 #TODO
    rangeLv = 5
    mp = [5, 250]
    uuid = "f2fb27162beb0b87a7cb9af7900e95f2"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 格挡几率 : {value0}%
    # REMOVE: data0 = [0, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 100, 100, 100, 100]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 格挡成功时所受伤害减少率 : {value1}%
    # REMOVE: data1 = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 发动后的冷却时间 : {value2}秒
    # REMOVE: data2 = [0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)

# 盾牌格挡
# knight/elven_knight/0969cd4054d93da07708108c0cc1c4b5
# 0ee8fa5dc525c1a1f23fc6911e921e4a/0969cd4054d93da07708108c0cc1c4b5
class Skill10(ActiveSkill):
    """
        使用盾牌格挡敌人的攻击。 防御成功时按下基本攻击键， 则会使用盾牌反击； 若按下前方向键， 则会使用手中的武器进行反击。\n
        反击后， 按住技能键可抓取敌人。\n
        [使用狭长的剑招架或使用宽而结实的盾牌格挡。\n
       如何抉择就看你自己了。]
    """
    name = "盾牌格挡"
    learnLv = 10
    masterLv = 1
    maxLv = 7
    position = 4 #TODO
    rangeLv = 5
    cd = 2
    mp = [10, 220]
    uuid = "0969cd4054d93da07708108c0cc1c4b5"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 防御成功时伤害减少比率 : {value0}%
    # REMOVE: data0 = [0, 10, 15, 20, 25, 30, 30, 30]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 使用武器反击攻击力 : {value1}%
    # REMOVE: data1 = [0, 172, 367, 563, 758, 954, 1150, 1345]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 使用武器反击时控制持续时间 : {value2}秒
    # REMOVE: data2 = [0, 3, 3, 3, 3, 3, 3, 3]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 使用盾牌反击攻击力 : {value3}%
    # REMOVE: data3 = [0, 258, 551, 844, 1138, 1430, 1724, 2017]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # 盾牌反击眩晕几率 : {value4}%
    # REMOVE: data4 = [0, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)
    # 盾牌反击的眩晕时间 : {value5}秒
    # REMOVE: data5 = [0, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6]# noqa: E501
    data5 = get_data(f'{prefix}/{uuid}', 5)

# 致命突刺
# knight/elven_knight/eb71e1d82d92c7e1d40500a0dcd77aa6
# 0ee8fa5dc525c1a1f23fc6911e921e4a/eb71e1d82d92c7e1d40500a0dcd77aa6
class Skill11(ActiveSkill):
    """
        对敌人施放强力的刺击。\n
        蓄气后发动， 可以增加攻击力、 突刺距离和范围。\n
        [原本为帝国贵族剑士所掌握的剑术。 帝国皇帝为了提升骑士团的战斗力， “奉劝”贵族们将秘传剑术传授给骑士们。 迫于压力， 贵族剑士只好将一些初级剑术传授给了骑士团。]
    """
    name = "致命突刺"
    learnLv = 10
    masterLv = 60
    maxLv = 70
    position = 6 #TODO
    rangeLv = 2
    cd = 3
    mp = [6, 250]
    uuid = "eb71e1d82d92c7e1d40500a0dcd77aa6"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 攻击力 : {value0}%
    # REMOVE: data0 = [0, 623, 686, 749, 812, 875, 938, 1002, 1065, 1128, 1191, 1254, 1317, 1381, 1444, 1507, 1570, 1633, 1696, 1760, 1823, 1886, 1949, 2012, 2075, 2138, 2202, 2265, 2328, 2391, 2454, 2517, 2581, 2644, 2707, 2770, 2833, 2896, 2960, 3023, 3086, 3149, 3212, 3275, 3339, 3402, 3465, 3528, 3591, 3654, 3718, 3781, 3844, 3907, 3970, 4033, 4096, 4160, 4223, 4286, 4349, 4412, 4475, 4539, 4602, 4665, 4728, 4791, 4854, 4918, 4981]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 最大蓄气时攻击力 : {value1}%
    # REMOVE: data1 = [0, 778, 857, 936, 1015, 1094, 1173, 1252, 1330, 1409, 1488, 1567, 1646, 1725, 1804, 1883, 1962, 2041, 2120, 2199, 2278, 2357, 2435, 2514, 2593, 2672, 2751, 2830, 2909, 2988, 3067, 3146, 3225, 3304, 3383, 3462, 3540, 3619, 3698, 3777, 3856, 3935, 4014, 4093, 4172, 4251, 4330, 4409, 4488, 4567, 4645, 4724, 4803, 4882, 4961, 5040, 5119, 5198, 5277, 5356, 5435, 5514, 5593, 5672, 5750, 5829, 5908, 5987, 6066, 6145, 6224]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 蓄气时间上限 : {value2}秒
    # REMOVE: data2 = [0, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # [范围信息]
    # 攻击范围比率 : {value3}% ~ {value4}%
    # REMOVE: data3 = [0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # REMOVE: data4 = [0, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)

# 跳斩
# knight/elven_knight/c9664191611af31142e052dfaef84530
# 0ee8fa5dc525c1a1f23fc6911e921e4a/c9664191611af31142e052dfaef84530
class Skill12(ActiveSkill):
    """
        向前方跳跃劈砍敌人。\n
        对倒地状态的敌人造成控制效果和更高的伤害。\n
        对无法抓取的敌人不适用控制效果。\n
        [这是骑士们在战场上寻找装死敌人时的常用技能， 可以让那些丧失抵抗能力的人毫无痛苦地死去。 怜悯， 也是骑士的美德之一。]
    """
    name = "跳斩"
    learnLv = 10
    masterLv = 60
    maxLv = 70
    position = 8 #TODO
    rangeLv = 2
    cd = 4
    mp = [7, 250]
    uuid = "c9664191611af31142e052dfaef84530"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 劈砍攻击力 : {value0}
    # REMOVE: data0 = [0, 2186, 2408, 2630, 2851, 3073, 3295, 3517, 3738, 3960, 4182, 4404, 4625, 4847, 5069, 5291, 5513, 5734, 5956, 6178, 6400, 6621, 6843, 7065, 7287, 7508, 7730, 7952, 8174, 8396, 8617, 8839, 9061, 9283, 9504, 9726, 9948, 10170, 10391, 10613, 10835, 11057, 11278, 11500, 11722, 11944, 12166, 12387, 12609, 12831, 13053, 13274, 13496, 13718, 13940, 14161, 14383, 14605, 14827, 15049, 15270, 15492, 15714, 15936, 16157, 16379, 16601, 16823, 17044, 17266, 17488]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 对倒地状态的敌人的攻击力增加率 : {value1}%
    # REMOVE: data1 = [0, 121, 123, 126, 128, 129, 132, 134, 137, 138, 140, 143, 145, 146, 149, 151, 154, 155, 157, 160, 162, 163, 166, 168, 171, 172, 174, 177, 179, 180, 183, 185, 188, 189, 191, 194, 196, 197, 200, 202, 204, 206, 208, 211, 213, 214, 217, 219, 221, 223, 225, 227, 230, 231, 234, 236, 238, 240, 242, 244, 247, 248, 250, 253, 255, 257, 259, 261, 263, 265, 267]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)

# 飞跃截击
# knight/elven_knight/cfacda0647b9a0f595df2c2aad30c18d
# 0ee8fa5dc525c1a1f23fc6911e921e4a/cfacda0647b9a0f595df2c2aad30c18d
class Skill13(ActiveSkill):
    """
        快速的跳向空中的敌人， 并用盾牌将其击落， 并产生冲击波。\n
        [拿着厚重的盾牌， 怎么会跳得这样轻盈？]
    """
    name = "飞跃截击"
    learnLv = 10
    masterLv = 60
    maxLv = 70
    position = 1 #TODO
    rangeLv = 2
    cd = 3
    mp = [10, 220]
    uuid = "cfacda0647b9a0f595df2c2aad30c18d"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 挥击攻击力 : {value0}
    # REMOVE: data0 = [0, 1428, 1573, 1718, 1863, 2007, 2152, 2297, 2442, 2587, 2732, 2877, 3022, 3166, 3311, 3456, 3601, 3746, 3891, 4036, 4181, 4325, 4470, 4615, 4760, 4905, 5050, 5195, 5339, 5484, 5629, 5774, 5919, 6064, 6209, 6354, 6498, 6643, 6788, 6933, 7078, 7223, 7368, 7513, 7657, 7802, 7947, 8092, 8237, 8382, 8527, 8671, 8816, 8961, 9106, 9251, 9396, 9541, 9686, 9830, 9975, 10120, 10265, 10410, 10555, 10700, 10845, 10989, 11134, 11279, 11424]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 冲击波攻击力 : {value1}
    # REMOVE: data1 = [0, 1184, 1304, 1425, 1545, 1665, 1785, 1905, 2025, 2145, 2266, 2386, 2506, 2626, 2746, 2866, 2986, 3106, 3227, 3347, 3467, 3587, 3707, 3827, 3947, 4068, 4188, 4308, 4428, 4548, 4668, 4788, 4909, 5029, 5149, 5269, 5389, 5509, 5629, 5750, 5870, 5990, 6110, 6230, 6350, 6470, 6591, 6711, 6831, 6951, 7071, 7191, 7311, 7432, 7552, 7672, 7792, 7912, 8032, 8152, 8273, 8393, 8513, 8633, 8753, 8873, 8993, 9114, 9234, 9354, 9474]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 冲击波范围 : {value2}%
    # REMOVE: data2 = [0, 133, 136, 137, 139, 142, 143, 145, 146, 149, 151, 152, 155, 156, 159, 161, 162, 165, 166, 168, 171, 172, 174, 175, 178, 180, 182, 184, 185, 188, 190, 191, 194, 195, 197, 200, 201, 203, 204, 207, 209, 211, 213, 214, 217, 219, 220, 223, 224, 226, 229, 230, 232, 234, 236, 238, 240, 242, 243, 246, 248, 249, 252, 253, 255, 258, 259, 261, 263, 265, 267]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)

# 强化 - 后跳
# knight/elven_knight/2b340542e776818b78f3212af184bd6b
# 0ee8fa5dc525c1a1f23fc6911e921e4a/2b340542e776818b78f3212af184bd6b
class Skill14(PassiveSkill):
    """
    施放技能期间、 被击或倒地的状态下， 可以施放无敌状态的[后跳]。\n
    该能力适用与[后跳]不同的冷却时间， 并且不受冷却时间减少效果的影响。\n
    根据施放情况的不同(强制中断技能和被敌人攻击)， 进入不同冷却时间。\n
    无法强制中断觉醒技能和跳跃超过一定高度的技能。
    """
    name = "强化 - 后跳"
    learnLv = 10
    masterLv = 1
    maxLv = 1
    position = 4 #TODO
    rangeLv = 1
    cd = 30
    uuid = "2b340542e776818b78f3212af184bd6b"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 强制中断技能时的冷却时间 : {value0}秒
    # REMOVE: data0 = [0, 40]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 被击或倒地期间施放时的冷却时间 : {value1}秒
    # REMOVE: data1 = [0, 30]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)

# 跃翔
# knight/elven_knight/1fea5a626f15230237946a11a9d11582
# 0ee8fa5dc525c1a1f23fc6911e921e4a/1fea5a626f15230237946a11a9d11582
class Skill15(ActiveSkill):
    """
        增加自身20%的跳跃力， 效果持续一定时间。\n
        效果持续期间内， 再次按技能键可以结束。
    """
    name = "跃翔"
    learnLv = 10
    masterLv = 1
    maxLv = 1
    position = 6 #TODO
    rangeLv = 3
    cd = 5
    mp = [13, 13]
    uuid = "1fea5a626f15230237946a11a9d11582"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 持续时间 : {value0}秒
    # REMOVE: data0 = [0, 20]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)

# 防御姿态
# knight/elven_knight/45442bbbe33540b4deeec29437dae70c
# 0ee8fa5dc525c1a1f23fc6911e921e4a/45442bbbe33540b4deeec29437dae70c
class Skill16(PassiveSkill):
    """
        可以在盾牌格挡中进行移动和前冲。 被击一定次数后会解除防御姿态。\n
    - [转职为精灵骑士后追加功能] -\n
        用盾牌格挡成功时， [盾牌格挡]、 [自动防御]、 [铁壁推进]的冷却时间会减少； 施放[盾牌格挡]期间， 免疫异常状态。\n
        [进击吧！ 骑士！]
    """
    name = "防御姿态"
    learnLv = 15
    masterLv = 1
    maxLv = 1
    position = 4 #TODO
    rangeLv = 10
    uuid = "45442bbbe33540b4deeec29437dae70c"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 防御姿态的持续时间 : {value0}秒
    # REMOVE: data0 = [0, 5]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 所受伤害减少率 : {value1}%
    # REMOVE: data1 = [0, 40]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 防御次数上限 : {value2}次
    # REMOVE: data2 = [0, 10]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)

# 破武之轮
# knight/elven_knight/01c3a2fb793d293a25ed8dc7a0d70c1a
# 0ee8fa5dc525c1a1f23fc6911e921e4a/01c3a2fb793d293a25ed8dc7a0d70c1a
class Skill17(ActiveSkill):
    """
        挥剑向前方发射齿轮状的剑气。\n
        被击中的敌人会在一段时间内进入破武器状态。\n
        长按技能键可以蓄气施放， 蓄气时间越长， 破武器效果持续时间越长。\n
    [转职为精灵骑士后附加效果]\n
        始终具有最大蓄气效果。\n
        [冷风吹的越强， 行人却将围巾裹得越严实。\n
        而温暖的阳光照耀下来， 行人很快就把围巾拿掉了。]
    """
    name = "破武之轮"
    learnLv = 15
    masterLv = 60
    maxLv = 70
    position = 5 #TODO
    rangeLv = 2
    cd = 6
    mp = [9, 250]
    uuid = "01c3a2fb793d293a25ed8dc7a0d70c1a"
    hasVP = False
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 蓄气时间上限 : {value0}秒
    # REMOVE: data0 = [0, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54, 0.54]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 挥剑攻击力 : {value1}%
    # REMOVE: data1 = [0, 1601, 1763, 1925, 2088, 2250, 2412, 2575, 2737, 2899, 3062, 3224, 3387, 3549, 3711, 3874, 4036, 4198, 4361, 4523, 4686, 4848, 5010, 5173, 5335, 5497, 5660, 5822, 5985, 6147, 6309, 6472, 6634, 6796, 6959, 7121, 7283, 7446, 7608, 7771, 7933, 8095, 8258, 8420, 8582, 8745, 8907, 9070, 9232, 9394, 9557, 9719, 9881, 10044, 10206, 10368, 10531, 10693, 10856, 11018, 11180, 11343, 11505, 11667, 11830, 11992, 12155, 12317, 12479, 12642, 12804]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 剑气攻击力 : {value2}%
    # REMOVE: data2 = [0, 3201, 3526, 3851, 4176, 4501, 4825, 5150, 5475, 5800, 6125, 6449, 6774, 7099, 7424, 7749, 8073, 8398, 8723, 9048, 9372, 9697, 10022, 10347, 10672, 10996, 11321, 11646, 11971, 12296, 12620, 12945, 13270, 13595, 13920, 14244, 14569, 14894, 15219, 15543, 15868, 16193, 16518, 16843, 17167, 17492, 17817, 18142, 18467, 18791, 19116, 19441, 19766, 20091, 20415, 20740, 21065, 21390, 21714, 22039, 22364, 22689, 23014, 23338, 23663, 23988, 24313, 24638, 24962, 25287, 25612]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 最小蓄气时破武器效果持续时间 : {value3}秒
    # REMOVE: data3 = [0, 1.5, 1.55, 1.6, 1.65, 1.7, 1.75, 1.8, 1.85, 1.9, 1.95, 2, 2.04, 2.1, 2.15, 2.2, 2.25, 2.3, 2.35, 2.4, 2.45, 2.5, 2.55, 2.6, 2.65, 2.7, 2.75, 2.8, 2.85, 2.9, 2.95, 3, 3.05, 3.1, 3.15, 3.2, 3.25, 3.3, 3.35, 3.4, 3.45, 3.5, 3.55, 3.6, 3.65, 3.7, 3.75, 3.8, 3.85, 3.9, 3.95, 4, 4.05, 4.09, 4.15, 4.2, 4.25, 4.3, 4.35, 4.4, 4.45, 4.5, 4.55, 4.6, 4.65, 4.7, 4.75, 4.8, 4.85, 4.9, 4.95]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # 最大蓄气时破武器效果持续时间 : {value4}秒
    # REMOVE: data4 = [0, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.09, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.19, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)
    # 破武器几率 : {value5}%
    # REMOVE: data5 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data5 = get_data(f'{prefix}/{uuid}', 5)
    # 破武器效果的敌人攻击力减少 : {value6}%
    # REMOVE: data6 = [0, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300]# noqa: E501
    data6 = get_data(f'{prefix}/{uuid}', 6)
    # [范围信息]
    # 剑气大小比率 : {value7}%
    # REMOVE: data7 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data7 = get_data(f'{prefix}/{uuid}', 7)

# 骑乘召唤
# knight/elven_knight/a6c8f69107f8c4f5d1a0c7a57d000290
# 0ee8fa5dc525c1a1f23fc6911e921e4a/a6c8f69107f8c4f5d1a0c7a57d000290
class Skill18(ActiveSkill):
    """
        召唤并骑乘守护独角兽进行协同作战， 效果持续一段时间。\n
        骑乘时进入霸体状态， 当独角兽的体力变成0的时候会提前解除骑乘状态。\n
        守护独角兽的体力以精灵骑士生命值的一定比例适用， 骑乘状态的技能/技能攻击力受[基础精通]的影响。\n
    - 骑乘后技能 -\n
    [前跳]、 [后踢]、 [奔跑]、 [旋风刺]、 [解除骑乘]、 [刺击]
    """
    name = "骑乘召唤"
    learnLv = 15
    masterLv = 1
    maxLv = 11
    position = 2 #TODO
    rangeLv = 2
    cd = 120
    mp = [540, 872]
    uuid = "a6c8f69107f8c4f5d1a0c7a57d000290"
    hasVP = False
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 独角兽持续时间 : {value0}秒
    # REMOVE: data0 = [0, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 独角兽的生命值比率 : {value1}%
    # REMOVE: data1 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 骑乘状态第1击攻击力 : {value2}% x{value3}
    # REMOVE: data2 = [0, 112, 124, 135, 146, 158, 169, 181, 192, 203, 215, 226]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # REMOVE: data3 = [0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # 骑乘状态第2击攻击力 : {value4}% x{value5}
    # REMOVE: data4 = [0, 112, 124, 135, 146, 158, 169, 181, 192, 203, 215, 226]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)
    # REMOVE: data5 = [0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]# noqa: E501
    data5 = get_data(f'{prefix}/{uuid}', 5)
    # 骑乘状态第3击攻击力 : {value6}% x{value7}
    # REMOVE: data6 = [0, 150, 165, 181, 196, 211, 226, 241, 257, 272, 287, 302]# noqa: E501
    data6 = get_data(f'{prefix}/{uuid}', 6)
    # REMOVE: data7 = [0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]# noqa: E501
    data7 = get_data(f'{prefix}/{uuid}', 7)
    # 前冲多段攻击力 : {value8}%
    # REMOVE: data8 = [0, 140, 155, 169, 183, 197, 212, 226, 240, 254, 269, 283]# noqa: E501
    data8 = get_data(f'{prefix}/{uuid}', 8)
    # 刺击冷却时间 : {value9}秒
    # REMOVE: data9 = [0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]# noqa: E501
    data9 = get_data(f'{prefix}/{uuid}', 9)
    # 刺击攻击力 : {value10}% x{value11}
    # REMOVE: data10 = [0, 389, 428, 468, 507, 546, 586, 625, 665, 704, 744, 783]# noqa: E501
    data10 = get_data(f'{prefix}/{uuid}', 10)
    # REMOVE: data11 = [0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]# noqa: E501
    data11 = get_data(f'{prefix}/{uuid}', 11)
    # 蹄刺冲击波攻击力 : {value12}%
    # REMOVE: data12 = [0, 1924, 2119, 2314, 2510, 2705, 2900, 3095, 3290, 3486, 3681, 3876]# noqa: E501
    data12 = get_data(f'{prefix}/{uuid}', 12)
    # 前跳攻击力 : {value13}%
    # REMOVE: data13 = [0, 398, 439, 479, 520, 560, 601, 641, 681, 722, 762, 803]# noqa: E501
    data13 = get_data(f'{prefix}/{uuid}', 13)
    # 前跳冲击波攻击力 : {value14}%
    # REMOVE: data14 = [0, 3588, 3952, 4316, 4680, 5044, 5408, 5772, 6136, 6500, 6864, 7228]# noqa: E501
    data14 = get_data(f'{prefix}/{uuid}', 14)
    # 后踢攻击力 : {value15}%
    # REMOVE: data15 = [0, 3551, 3912, 4272, 4632, 4992, 5353, 5713, 6073, 6433, 6794, 7154]# noqa: E501
    data15 = get_data(f'{prefix}/{uuid}', 15)
    # 奔跑多段攻击力 : {value16}%
    # REMOVE: data16 = [0, 962, 1060, 1157, 1255, 1352, 1450, 1548, 1645, 1743, 1840, 1938]# noqa: E501
    data16 = get_data(f'{prefix}/{uuid}', 16)
    # 旋风刺攻击力 : {value17}%
    # REMOVE: data17 = [0, 659, 725, 792, 859, 926, 993, 1060, 1126, 1193, 1260, 1327]# noqa: E501
    data17 = get_data(f'{prefix}/{uuid}', 17)
    # 旋风刺多段攻击次数 : {value18}次
    # REMOVE: data18 = [0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]# noqa: E501
    data18 = get_data(f'{prefix}/{uuid}', 18)
    # [范围信息]
    # 蹄刺冲击波大小比率 : {value19}%
    # REMOVE: data19 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data19 = get_data(f'{prefix}/{uuid}', 19)
    # 前跳冲击波大小比率 : {value20}%
    # REMOVE: data20 = [0, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150]# noqa: E501
    data20 = get_data(f'{prefix}/{uuid}', 20)
    # 后踢攻击范围比率 : {value21}%
    # REMOVE: data21 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data21 = get_data(f'{prefix}/{uuid}', 21)
    # 旋风刺旋风大小比率 : {value22}%
    # REMOVE: data22 = [0, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115]# noqa: E501
    data22 = get_data(f'{prefix}/{uuid}', 22)

# 愤怒冲撞
# knight/elven_knight/dcd536f1674630f01fc9667bb202b851
# 0ee8fa5dc525c1a1f23fc6911e921e4a/dcd536f1674630f01fc9667bb202b851
class Skill19(ActiveSkill):
    """
        以野蛮之力冲撞敌人， 并使敌人进入眩晕状态。
    """
    name = "愤怒冲撞"
    learnLv = 15
    masterLv = 60
    maxLv = 70
    position = 3 #TODO
    rangeLv = 2
    cd = 9
    mp = [15, 420]
    uuid = "dcd536f1674630f01fc9667bb202b851"
    hasVP = False
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 突进攻击力 : {value0}%
    # REMOVE: data0 = [0, 7713, 8495, 9278, 10060, 10843, 11625, 12408, 13190, 13973, 14755, 15538, 16320, 17103, 17885, 18668, 19450, 20233, 21015, 21798, 22580, 23363, 24145, 24928, 25710, 26492, 27275, 28057, 28840, 29622, 30405, 31187, 31970, 32752, 33535, 34317, 35100, 35882, 36665, 37447, 38230, 39012, 39795, 40577, 41360, 42142, 42925, 43707, 44489, 45272, 46054, 46837, 47619, 48402, 49184, 49967, 50749, 51532, 52314, 53097, 53879, 54662, 55444, 56227, 57009, 57792, 58574, 59357, 60139, 60922, 61704]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 眩晕几率 : {value1}%
    # REMOVE: data1 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 眩晕时间 : {value2}秒
    # REMOVE: data2 = [0, 0.9, 0.9, 0.9, 1, 1, 1, 1, 1, 1, 1, 1.1, 1.1, 1.1, 1.1, 1.1, 1.1, 1.1, 1.2, 1.2, 1.2, 1.2, 1.2, 1.2, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.7, 1.7, 1.7, 1.7, 1.7, 1.7, 1.7, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.9, 1.9, 1.9, 1.9, 1.9, 1.9, 1.9]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # [范围信息]
    # 冲撞范围比率 : {value3}%
    # REMOVE: data3 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)

# 骑士守护
# knight/elven_knight/23a5e0fba03283cb1b324a847b3fe370
# 0ee8fa5dc525c1a1f23fc6911e921e4a/23a5e0fba03283cb1b324a847b3fe370
class Skill20(PassiveSkill):
    """
        受到致命一击后， 会出现独角兽复活精灵骑士。\n
        独角兽会在一段时间内攻击敌人来保护精灵骑士。\n
        独角兽等级与当前精灵骑士的等级相同。 独角兽存在时， 精灵骑士的防御力会增加。\n
        可以用开启/关闭按钮立即让独角兽退场。
    """
    name = "骑士守护"
    learnLv = 15
    masterLv = 1
    maxLv = 1
    position = 0 #TODO
    rangeLv = 1
    uuid = "23a5e0fba03283cb1b324a847b3fe370"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 复活时恢复生命值 : {value0}%
    # REMOVE: data0 = [0, 33]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 复活冷却时间 : {value1}秒
    # REMOVE: data1 = [0, 180]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 独角兽持续时间 : {value2}秒
    # REMOVE: data2 = [0, 15]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 防御力增加 : {value3}
    # REMOVE: data3 = [0, 8000]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # 复活后的无敌状态持续时间 : {value4}秒
    # REMOVE: data4 = [0, 2]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)

# 蔷薇护甲
# knight/elven_knight/0ed3148658fe37b3336ccb718dc0fdb0
# 0ee8fa5dc525c1a1f23fc6911e921e4a/0ed3148658fe37b3336ccb718dc0fdb0
class Skill21(ActiveSkill):
    """
        穿上蔷薇护甲， 被击时将伤害反弹给敌人， 效果持续一定时间。 玫瑰存在时增加自身硬直， 每次发射玫瑰刺时都会减少玫瑰的数量。\n
        [美丽玫瑰很可能是个甜蜜的陷阱， 一旦陷入， 便无法自拔。]
    """
    name = "蔷薇护甲"
    learnLv = 15
    masterLv = 20
    maxLv = 30
    position = 9 #TODO
    rangeLv = 3
    cd = [10, 10.4, 10.8, 11.2, 11.7, 12.1, 12.5, 12.9, 13.3, 13.7, 14.1, 14.6, 15, 15.4, 15.8, 16.2, 16.6, 17, 17.4, 17.9, 18.3, 18.7, 19.1, 19.5, 19.9, 20.3, 20.8, 21.2, 21.6, 22]
    mp = [7, 450]
    uuid = "0ed3148658fe37b3336ccb718dc0fdb0"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 持续时间 : {value0}秒
    # REMOVE: data0 = [0, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 发射玫瑰刺次数上限 : {value1}次
    # REMOVE: data1 = [0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 玫瑰刺攻击力 : {value2}%
    # REMOVE: data2 = [0, 866, 1004, 1142, 1280, 1418, 1556, 1694, 1832, 1970, 2109, 2247, 2385, 2523, 2661, 2799, 2937, 3075, 3213, 3351, 3489, 3627, 3765, 3903, 4041, 4179, 4318, 4456, 4594, 4732, 4870]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 硬直增加量 : {value3}
    # REMOVE: data3 = [0, 260, 284, 309, 333, 360, 383, 408, 432, 457, 481, 507, 530, 556, 578, 607, 629, 655, 678, 704, 729, 753, 779, 802, 830, 852, 877, 901, 927, 950, 976]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # 发射玫瑰刺的冷却时间 : {value4}秒
    # REMOVE: data4 = [0, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)
    # 出血攻击力 : {value5}%
    # REMOVE: data5 = [0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]# noqa: E501
    data5 = get_data(f'{prefix}/{uuid}', 5)
    # 出血持续时间 : {value6}秒
    # REMOVE: data6 = [0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]# noqa: E501
    data6 = get_data(f'{prefix}/{uuid}', 6)
    # 出血几率 : {value7}%
    # REMOVE: data7 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data7 = get_data(f'{prefix}/{uuid}', 7)

# 战吼
# knight/elven_knight/01384bbfc346775d1267fa0bc4ca605f
# 0ee8fa5dc525c1a1f23fc6911e921e4a/01384bbfc346775d1267fa0bc4ca605f
class Skill22(ActiveSkill):
    """
        发出战吼鼓舞自己。 增加攻击力和命中率， 效果持续一段时间。
    """
    name = "战吼"
    learnLv = 15
    masterLv = 20
    maxLv = 30
    position = 7 #TODO
    rangeLv = 3
    cd = 5
    uuid = "01384bbfc346775d1267fa0bc4ca605f"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 持续时间 : {value0}秒
    # REMOVE: data0 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 攻击力增加率 : {value1}%
    # REMOVE: data1 = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 命中率增加量 : {value2}%
    # REMOVE: data2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)

# 骑士信念
# knight/elven_knight/92360eab6e1f378902018eca681ac629
# 0ee8fa5dc525c1a1f23fc6911e921e4a/92360eab6e1f378902018eca681ac629
class Skill23(PassiveSkill):
    """
        骑士的信念在鼓舞着精灵骑士进行战斗， 减少除[天马流星落]、 [暮光之灵 : 黄昏独角兽]、 [生命之律·神木擎天]之外技能的冷却时间， 同时增加物理攻击力和物理暴击率。\n
        装备巨剑时， 减少魔法值消耗量。
    """
    name = "骑士信念"
    learnLv = 15
    masterLv = 10
    maxLv = 20
    position = 1 #TODO
    rangeLv = 5
    uuid = "92360eab6e1f378902018eca681ac629"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 冷却时间减少率 : {value0}%
    # REMOVE: data0 = [0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 武器物理攻击力增加率 : {value1}%
    # REMOVE: data1 = [0, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 物理暴击率增加 : {value2}%
    # REMOVE: data2 = [0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 装备巨剑时魔法值消耗量减少 : {value3}%
    # REMOVE: data3 = [0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)

# 伟大的意志
# knight/elven_knight/506e7ed77d517419a6e1c437a2cedb17
# 0ee8fa5dc525c1a1f23fc6911e921e4a/506e7ed77d517419a6e1c437a2cedb17
class Skill24(ActiveSkill):
    """
        解除自身的异常状态。\n
        可解除感电、 石化、 束缚、 出血、 中毒、 诅咒、 冰冻、 减速、 失明、 睡眠、 灼伤、 混乱、 破武器、 破甲、 崩裂等异常状态。\n
        解除后的一段时间内增加对异常状态的免疫力。\n
        但无法解除或免疫部分特殊异常状态。
    """
    name = "伟大的意志"
    learnLv = 20
    masterLv = 1
    maxLv = 11
    position = 8 #TODO
    rangeLv = 5
    cd = 15
    mp = [10, 1280]
    uuid = "506e7ed77d517419a6e1c437a2cedb17"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 异常状态免疫力增加持续时间 : {value0}秒
    # REMOVE: data0 = [0, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)

# 审判之盾
# knight/elven_knight/9bff7f2559e003766fee2853dca00631
# 0ee8fa5dc525c1a1f23fc6911e921e4a/9bff7f2559e003766fee2853dca00631
class Skill25(ActiveSkill):
    """
        将自然之力注入到盾牌内并挥舞盾牌攻击敌人。\n
        命中时使敌人进入审判状态， 攻击审判状态的敌人能造成额外伤害。\n
        审判状态持续一定时间或达到被击次数上限后消失。
    """
    name = "审判之盾"
    learnLv = 20
    masterLv = 60
    maxLv = 70
    position = 5 #TODO
    rangeLv = 2
    cd = 7
    mp = [20, 400]
    uuid = "9bff7f2559e003766fee2853dca00631"
    hasVP = False
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 挥舞攻击力 : {value0}%
    # REMOVE: data0 = [0, 957, 1054, 1151, 1248, 1345, 1442, 1539, 1636, 1733, 1830, 1927, 2024, 2121, 2218, 2316, 2413, 2510, 2607, 2704, 2801, 2898, 2995, 3092, 3189, 3286, 3383, 3480, 3577, 3674, 3771, 3868, 3966, 4063, 4160, 4257, 4354, 4451, 4548, 4645, 4742, 4839, 4936, 5033, 5130, 5227, 5324, 5421, 5518, 5615, 5713, 5810, 5907, 6004, 6101, 6198, 6295, 6392, 6489, 6586, 6683, 6780, 6877, 6974, 7071, 7168, 7265, 7363, 7460, 7557, 7654]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 攻击审判状态的敌人时攻击力 : {value1}%
    # REMOVE: data1 = [0, 664, 732, 799, 866, 934, 1001, 1069, 1136, 1203, 1271, 1338, 1405, 1473, 1540, 1608, 1675, 1742, 1810, 1877, 1945, 2012, 2079, 2147, 2214, 2281, 2349, 2416, 2484, 2551, 2618, 2686, 2753, 2821, 2888, 2955, 3023, 3090, 3157, 3225, 3292, 3360, 3427, 3494, 3562, 3629, 3697, 3764, 3831, 3899, 3966, 4034, 4101, 4168, 4236, 4303, 4370, 4438, 4505, 4573, 4640, 4707, 4775, 4842, 4910, 4977, 5044, 5112, 5179, 5246, 5314]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 审判状态持续时间 : {value2}秒
    # REMOVE: data2 = [0, 5.1, 5.1, 5.1, 5.2, 5.2, 5.3, 5.3, 5.3, 5.4, 5.4, 5.5, 5.5, 5.6, 5.6, 5.6, 5.7, 5.7, 5.8, 5.8, 5.9, 5.9, 5.9, 6, 6, 6.1, 6.1, 6.2, 6.2, 6.2, 6.3, 6.3, 6.4, 6.4, 6.5, 6.5, 6.5, 6.6, 6.6, 6.7, 6.7, 6.8, 6.8, 6.8, 6.9, 6.9, 7, 7, 7, 7.1, 7.1, 7.2, 7.2, 7.3, 7.3, 7.3, 7.4, 7.4, 7.5, 7.5, 7.6, 7.6, 7.6, 7.7, 7.7, 7.8, 7.8, 7.9, 7.9, 7.9, 8]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 审判状态叠加次数上限 : {value3}次
    # REMOVE: data3 = [0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # [范围信息]
    # 范围比率 : {value4}%
    # REMOVE: data4 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)

# 守护神鹿
# knight/elven_knight/762c4e6d030eaf0abbfe1fec2b298574
# 0ee8fa5dc525c1a1f23fc6911e921e4a/762c4e6d030eaf0abbfe1fec2b298574
class Skill26(ActiveSkill):
    """
        将神鹿精灵的力量赋予在利剑上对敌人进行攻击。\n
        被击中的敌人会受到多段攻击并浮空。
    """
    name = "守护神鹿"
    learnLv = 20
    masterLv = 60
    maxLv = 70
    position = 3 #TODO
    rangeLv = 2
    cd = 6
    mp = [10, 300]
    uuid = "762c4e6d030eaf0abbfe1fec2b298574"
    hasVP = False
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 鹿角攻击力 : {value0}% x{value1}
    # REMOVE: data0 = [0, 947, 1043, 1139, 1235, 1332, 1428, 1524, 1620, 1716, 1812, 1908, 2004, 2100, 2196, 2292, 2389, 2485, 2581, 2677, 2773, 2869, 2965, 3061, 3157, 3253, 3349, 3445, 3542, 3638, 3734, 3830, 3926, 4022, 4118, 4214, 4310, 4406, 4502, 4599, 4695, 4791, 4887, 4983, 5079, 5175, 5271, 5367, 5463, 5559, 5656, 5752, 5848, 5944, 6040, 6136, 6232, 6328, 6424, 6520, 6616, 6713, 6809, 6905, 7001, 7097, 7193, 7289, 7385, 7481, 7577]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # REMOVE: data1 = [0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # [范围信息]
    # 神鹿大小 : {value2}%
    # REMOVE: data2 = [0, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)

# 暴击
# knight/elven_knight/fc1262c19f3d0477ee8eda47b8db8696
# 0ee8fa5dc525c1a1f23fc6911e921e4a/fc1262c19f3d0477ee8eda47b8db8696
class Skill27(PassiveSkill):
    """
        集中精神， 提升物理/魔法暴击率。
    """
    name = "暴击"
    learnLv = 20
    masterLv = 10
    maxLv = 20
    position = 5 #TODO
    rangeLv = 3
    uuid = "fc1262c19f3d0477ee8eda47b8db8696"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 物理/魔法暴击率增加 : {value0}%
    # REMOVE: data0 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)

# 破甲冲击
# knight/elven_knight/5dc7008b12a459325b548b0715c6b73c
# 0ee8fa5dc525c1a1f23fc6911e921e4a/5dc7008b12a459325b548b0715c6b73c
class Skill28(ActiveSkill):
    """
        产生强力的冲击波， 对周围的敌人造成伤害。\n
     可以在空中施放。\n
     在决斗场中， 只能在地面施放。
    """
    name = "破甲冲击"
    learnLv = 25
    masterLv = 60
    maxLv = 70
    position = 7 #TODO
    rangeLv = 2
    cd = 7
    mp = [25, 480]
    uuid = "5dc7008b12a459325b548b0715c6b73c"
    hasVP = False
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 冲击波攻击力 : {value0}%
    # REMOVE: data0 = [0, 6961, 7667, 8373, 9080, 9786, 10492, 11198, 11904, 12611, 13317, 14023, 14729, 15435, 16141, 16848, 17554, 18260, 18966, 19672, 20379, 21085, 21791, 22497, 23203, 23910, 24616, 25322, 26028, 26734, 27440, 28147, 28853, 29559, 30265, 30971, 31678, 32384, 33090, 33796, 34502, 35209, 35915, 36621, 37327, 38033, 38739, 39446, 40152, 40858, 41564, 42270, 42977, 43683, 44389, 45095, 45801, 46508, 47214, 47920, 48626, 49332, 50038, 50745, 51451, 52157, 52863, 53569, 54276, 54982, 55688]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # [范围信息]
    # 冲击波范围 : {value1}px
    # REMOVE: data1 = [0, 345, 346, 347, 348, 349, 350, 351, 353, 354, 355, 356, 357, 358, 359, 361, 362, 363, 364, 365, 366, 368, 369, 370, 371, 372, 373, 374, 376, 377, 378, 379, 380, 381, 382, 384, 385, 386, 387, 388, 389, 391, 392, 393, 394, 395, 396, 397, 399, 400, 401, 402, 403, 404, 405, 407, 408, 409, 410, 411, 412, 414, 415, 416, 417, 418, 419, 420, 422, 423, 424]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)

# 自然守护
# knight/elven_knight/8ee0099656df08a0b39225f8a21d514b
# 0ee8fa5dc525c1a1f23fc6911e921e4a/8ee0099656df08a0b39225f8a21d514b
class Skill29(ActiveSkill):
    """
        因受到自然守护， 提升自身防御力， 持续一段时间。\n
        自然守护持续时间内， 自身处于霸体状态， 并增加物理防御力和魔法防御力。\n
        在决斗场被击一定次数后该效果消失， 减益效果持续时间内移动速度减慢。
    """
    name = "自然守护"
    learnLv = 25
    masterLv = 20
    maxLv = 30
    position = 9 #TODO
    rangeLv = 3
    cd = 30
    mp = [124, 346]
    uuid = "8ee0099656df08a0b39225f8a21d514b"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 持续时间 : {value0}秒
    # REMOVE: data0 = [0, 31.5, 33, 34.5, 36, 37.5, 39, 40.5, 42, 43.5, 45, 46.5, 48, 49.5, 51, 52.5, 54, 55.5, 57, 58.5, 60, 61.5, 63, 64.5, 66, 67.5, 69, 70.5, 72, 73.5, 75]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 物理防御力增加量 : {value1}
    # REMOVE: data1 = [0, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 魔法防御力增加量 : {value2}
    # REMOVE: data2 = [0, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420, 13420]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # [决斗场]
    # 被击次数上限 : {value3}次
    # REMOVE: data3 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # 移动速度减少量 : {value4}%
    # REMOVE: data4 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)

# 剑盾猛攻
# knight/elven_knight/3d8f3d438405d79f8d3ed68072674d1e
# 0ee8fa5dc525c1a1f23fc6911e921e4a/3d8f3d438405d79f8d3ed68072674d1e
class Skill30(ActiveSkill):
    """
        在一定时间内， 施放其他技能后会出现[剑盾猛攻]能量， 可以强制发动该技能， 无间断地对敌人进行盾牌攻击。 \n
        盾牌攻击时可以向前移动进行推进攻击。\n
        成功按照指定时间点连续施放后， 下一次强制施放的技能攻击力会增加。 ([天马流星落]、 [暮光之灵 : 黄昏独角兽]、 [生命之律·神木擎天]不适用攻击力增加效果)\n
        在持续时间内成功发动技能时， 保留重叠次数； 失败时， 重叠次数消失。\n
        无法适用的技能 : [盾牌转换]、 [伟大的意志]、 [自然守护]、 [蔷薇护甲]、 [战吼]。\n
        对[剑盾猛攻]无影响的技能 : [受身蹲伏]、 [跃翔]、 [远古记忆]、 [不屈意志]、 [盾牌转换]、 [战吼]、 [蔷薇护甲]、 [伟大的意志]、 [自然守护]\n
        在决斗场中， 减少强制施放技能的攻击力。
    """
    name = "剑盾猛攻"
    learnLv = 30
    masterLv = 6
    maxLv = 16
    position = 3 #TODO
    rangeLv = 5
    cd = 5
    mp = [2, 75]
    uuid = "3d8f3d438405d79f8d3ed68072674d1e"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 持续时间 : {value0}秒
    # REMOVE: data0 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 挥盾物理攻击力 : {value1}%
    # REMOVE: data1 = [0, 2158, 2658, 3159, 3659, 4160, 4660, 5160, 5661, 6161, 6662, 7162, 7662, 8163, 8663, 9164, 9664]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 推进物理攻击力 : {value2}%
    # REMOVE: data2 = [0, 2317, 2854, 3391, 3929, 4466, 5003, 5540, 6077, 6615, 7152, 7689, 8226, 8764, 9301, 9838, 10375]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 强制施放技能时攻击力增加率 : {value3}%
    # REMOVE: data3 = [0, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # 技能攻击力增加效果重叠次数上限 : {value4}次
    # REMOVE: data4 = [0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)
    # [范围信息]
    # 攻击范围比率 : {value5}%
    # REMOVE: data5 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data5 = get_data(f'{prefix}/{uuid}', 5)

# 神木刺击
# knight/elven_knight/1dad88963abdc96b091fcab185a8820d
# 0ee8fa5dc525c1a1f23fc6911e921e4a/1dad88963abdc96b091fcab185a8820d
class Skill31(ActiveSkill):
    """
        把树精灵的力量赋予在剑上， 向前发动刺击攻击。
    """
    name = "神木刺击"
    learnLv = 30
    masterLv = 60
    maxLv = 70
    position = 6 #TODO
    rangeLv = 2
    cd = 10
    mp = [30, 950]
    uuid = "1dad88963abdc96b091fcab185a8820d"
    hasVP = False
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 刺击攻击力 : {value0}%
    # REMOVE: data0 = [0, 10819, 11917, 13014, 14112, 15209, 16307, 17404, 18502, 19600, 20697, 21795, 22892, 23990, 25088, 26185, 27283, 28380, 29478, 30575, 31673, 32771, 33868, 34966, 36063, 37161, 38258, 39356, 40454, 41551, 42649, 43746, 44844, 45942, 47039, 48137, 49234, 50332, 51429, 52527, 53625, 54722, 55820, 56917, 58015, 59113, 60210, 61308, 62405, 63503, 64600, 65698, 66796, 67893, 68991, 70088, 71186, 72283, 73381, 74479, 75576, 76674, 77771, 78869, 79967, 81064, 82162, 83259, 84357, 85454, 86552]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # [范围信息]
    # 冲击波范围 : {value1}%
    # REMOVE: data1 = [0, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)

# 精灵之跃
# knight/elven_knight/04883563896fe1adac7505c6146b5f59
# 0ee8fa5dc525c1a1f23fc6911e921e4a/04883563896fe1adac7505c6146b5f59
class Skill32(ActiveSkill):
    """
     跳起来冲向敌人， 并在落地时产生冲击波。\n
     蓄气后发动， 会增加跳跃距离。\n
     可以在空中施放。\n
     在决斗场中， 只能在地面施放。
    """
    name = "精灵之跃"
    learnLv = 30
    masterLv = 60
    maxLv = 70
    position = 7 #TODO
    rangeLv = 2
    cd = 7.5
    mp = [30, 650]
    uuid = "04883563896fe1adac7505c6146b5f59"
    hasVP = False
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 冲撞攻击力 : {value0}%
    # REMOVE: data0 = [0, 9122, 10047, 10973, 11898, 12824, 13749, 14675, 15600, 16525, 17451, 18376, 19302, 20227, 21152, 22078, 23003, 23929, 24854, 25780, 26705, 27630, 28556, 29481, 30407, 31332, 32258, 33183, 34108, 35034, 35959, 36885, 37810, 38735, 39661, 40586, 41512, 42437, 43363, 44288, 45213, 46139, 47064, 47990, 48915, 49840, 50766, 51691, 52617, 53542, 54468, 55393, 56318, 57244, 58169, 59095, 60020, 60946, 61871, 62796, 63722, 64647, 65573, 66498, 67423, 68349, 69274, 70200, 71125, 72051, 72976]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 冲击波攻击力 : {value1}%
    # REMOVE: data1 = [0, 9122, 10047, 10973, 11898, 12824, 13749, 14675, 15600, 16525, 17451, 18376, 19302, 20227, 21152, 22078, 23003, 23929, 24854, 25780, 26705, 27630, 28556, 29481, 30407, 31332, 32258, 33183, 34108, 35034, 35959, 36885, 37810, 38735, 39661, 40586, 41512, 42437, 43363, 44288, 45213, 46139, 47064, 47990, 48915, 49840, 50766, 51691, 52617, 53542, 54468, 55393, 56318, 57244, 58169, 59095, 60020, 60946, 61871, 62796, 63722, 64647, 65573, 66498, 67423, 68349, 69274, 70200, 71125, 72051, 72976]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 蓄气时间上限 : {value2}秒
    # REMOVE: data2 = [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # [范围信息]
    # 冲撞及冲击波范围比率 : {value3}%
    # REMOVE: data3 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # 学习[生命的恩宠]后使用[剑盾猛攻]连接施放时， 追击距离上限比率 : {value4}%
    # REMOVE: data4 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)

# 一刀两断
# knight/elven_knight/bb34e8854a93fd250347a1c64119f7ab
# 0ee8fa5dc525c1a1f23fc6911e921e4a/bb34e8854a93fd250347a1c64119f7ab
class Skill33(ActiveSkill):
    """
        爆发出强力的战意将前方敌人劈成两半。
    """
    name = "一刀两断"
    learnLv = 35
    masterLv = 60
    maxLv = 70
    position = 7 #TODO
    rangeLv = 2
    cube = 1
    cd = 15
    mp = [35, 1350]
    uuid = "bb34e8854a93fd250347a1c64119f7ab"
    hasVP = True
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
    vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501

    # 战意攻击力 : {value0}%
    # REMOVE: data0 = [0, 4766, 5250, 5733, 6217, 6701, 7184, 7668, 8151, 8635, 9118, 9602, 10085, 10569, 11052, 11536, 12019, 12503, 12987, 13470, 13954, 14437, 14921, 15404, 15888, 16371, 16855, 17338, 17822, 18306, 18789, 19273, 19756, 20240, 20723, 21207, 21690, 22174, 22657, 23141, 23625, 24108, 24592, 25075, 25559, 26042, 26526, 27009, 27493, 27976, 28460, 28944, 29427, 29911, 30394, 30878, 31361, 31845, 32328, 32812, 33295, 33779, 34262, 34746, 35230, 35713, 36197, 36680, 37164, 37647, 38131]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 敌人断开时伤害 : {value1}%
    # REMOVE: data1 = [0, 8123, 8947, 9771, 10595, 11419, 12243, 13067, 13891, 14715, 15539, 16363, 17187, 18011, 18835, 19659, 20483, 21307, 22131, 22955, 23779, 24603, 25427, 26251, 27075, 27900, 28724, 29548, 30372, 31196, 32020, 32844, 33668, 34492, 35316, 36140, 36964, 37788, 38612, 39436, 40260, 41084, 41908, 42732, 43556, 44380, 45204, 46028, 46852, 47676, 48500, 49324, 50149, 50973, 51797, 52621, 53445, 54269, 55093, 55917, 56741, 57565, 58389, 59213, 60037, 60861, 61685, 62509, 63333, 64157, 64981]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # [范围信息]
    # 战意范围比率 : {value2}%
    # REMOVE: data2 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)

    def vp_1(self):
        """
        [一刀两断]\n
        施放时只适用战意攻击\n
         - 总攻击力相同\n
        战意攻击攻击时， 向前方发射闪光\n
         - 闪光攻击力与战意攻击力相同\n
         - 战意攻击和闪光攻击为单次攻击
        """
        ...

    def vp_2(self):
        """
        [一刀两断]\n
        战意攻击会将命中的敌人拉向自己\n
        战意攻击范围 +50%
        """
        ...

# 铁壁推进
# knight/elven_knight/27bade584bb42fef68148d3a0b72bace
# 0ee8fa5dc525c1a1f23fc6911e921e4a/27bade584bb42fef68148d3a0b72bace
class Skill34(ActiveSkill):
    """
        将力量集中在盾牌上， 抵消敌人的攻击并保护身后队友。\n
        被盾牌碰到的敌人将受到伤害并被弹开， 使用技能后可以向前、 后方移动。\n
        在盾牌保护范围内的队员会减轻所受伤害， 并且不会发生僵直。 与精灵骑士的距离越近， 则受到的伤害越小。\n
        按住技能键时， 可发动持续推进； 松开技能键时， 则停止推进。
    """
    name = "铁壁推进"
    learnLv = 35
    masterLv = 60
    maxLv = 70
    position = 5 #TODO
    rangeLv = 2
    cube = 1
    cd = 20
    mp = [35, 1400]
    uuid = "27bade584bb42fef68148d3a0b72bace"
    hasVP = True
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
    vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501

    # 攻击力 : {value0}%
    # REMOVE: data0 = [0, 1050, 1156, 1263, 1369, 1476, 1582, 1689, 1795, 1902, 2008, 2115, 2221, 2328, 2434, 2541, 2647, 2754, 2860, 2967, 3073, 3180, 3286, 3393, 3499, 3606, 3712, 3819, 3925, 4032, 4138, 4245, 4351, 4458, 4564, 4671, 4777, 4884, 4990, 5097, 5203, 5310, 5416, 5523, 5629, 5736, 5842, 5949, 6055, 6162, 6268, 6375, 6481, 6588, 6694, 6801, 6907, 7014, 7120, 7227, 7333, 7440, 7546, 7653, 7759, 7866, 7972, 8079, 8185, 8292, 8398]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 持续时间上限 : {value1}秒
    # REMOVE: data1 = [0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 攻击次数上限 : {value2}次
    # REMOVE: data2 = [0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 所受伤害减少率 (物理) : {value3}%
    # REMOVE: data3 = [0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # 所受伤害减少率 (魔法) : {value4}%
    # REMOVE: data4 = [0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)
    # 受保护队员与精灵骑士的距离上限 : {value5}px
    # REMOVE: data5 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data5 = get_data(f'{prefix}/{uuid}', 5)
    # 根据距离伤害减少率的适配值 : {value6}%
    # REMOVE: data6 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data6 = get_data(f'{prefix}/{uuid}', 6)
    # 与精灵骑士的距离 : {value7}px
    # REMOVE: data7 = [0, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200]# noqa: E501
    data7 = get_data(f'{prefix}/{uuid}', 7)
    # 根据距离伤害减少率的适配值 : {value8}%
    # REMOVE: data8 = [0, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50]# noqa: E501
    data8 = get_data(f'{prefix}/{uuid}', 8)
    # [范围信息]
    # 保护领域大小比率 : {value9}%
    # REMOVE: data9 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data9 = get_data(f'{prefix}/{uuid}', 9)

    def vp_1(self):
        """
        [铁壁推进]\n
        施放时进入无敌状态， 效果持续1秒\n
        保护范围 +30%
        """
        ...

    def vp_2(self):
        """
        [铁壁推进]\n
        施放时， [剑盾猛攻]连锁重叠数增加到6\n
        施放时， 瞬间发动盾牌挥击， 随后按住技能键时， 可发动不造成伤害的持续推进\n
         - 总攻击力相同\n
        所受伤害减少效果只适用于自身\n
         - 删除保护范围
        """
        ...

# 自然束缚
# knight/elven_knight/e49e57b2e8fbeceb0a2c56a0c63fe6c5
# 0ee8fa5dc525c1a1f23fc6911e921e4a/e49e57b2e8fbeceb0a2c56a0c63fe6c5
class Skill35(ActiveSkill):
    """
        在利剑上注入玫瑰藤条的力量后， 抛向前方的敌人， 将其捆绑并向己方拉回。\n
        被藤条击中的敌人有高几率进入束缚状态， 并无法移动。\n
        在决斗场被藤条束缚并拉回的敌人会倒地。
    """
    name = "自然束缚"
    learnLv = 35
    masterLv = 60
    maxLv = 70
    position = 9 #TODO
    rangeLv = 2
    cube = 1
    cd = 15
    mp = [35, 750]
    uuid = "e49e57b2e8fbeceb0a2c56a0c63fe6c5"
    hasVP = True
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
    vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501

    # 藤条捆绑的物理攻击力 : {value0}%
    # REMOVE: data0 = [0, 13394, 14753, 16112, 17470, 18829, 20188, 21547, 22906, 24264, 25623, 26982, 28341, 29700, 31059, 32417, 33776, 35135, 36494, 37853, 39211, 40570, 41929, 43288, 44647, 46005, 47364, 48723, 50082, 51441, 52800, 54158, 55517, 56876, 58235, 59594, 60952, 62311, 63670, 65029, 66388, 67746, 69105, 70464, 71823, 73182, 74541, 75899, 77258, 78617, 79976, 81335, 82693, 84052, 85411, 86770, 88129, 89487, 90846, 92205, 93564, 94923, 96282, 97640, 98999, 100358, 101717, 103076, 104434, 105793, 107152]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 束缚持续时间 : {value1}秒
    # REMOVE: data1 = [0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 束缚几率 : {value2}%
    # REMOVE: data2 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # [范围信息]
    # 范围比率 : {value3}%
    # REMOVE: data3 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)

    def vp_1(self):
        """
        [自然束缚]\n
        将剑插入地面， 使藤蔓从地面向周围所有方向生长\n
        拔剑的瞬间， 藤蔓迅速向中心收缩， 并将藤蔓上的敌人拉向中心\n
        藤蔓生长后施放[剑盾猛攻]时， 藤蔓不会立即消失， 而是会持续到将敌人拉过来为止
        """
        ...

    def vp_2(self):
        """
        [自然束缚]\n
        拉动藤蔓时， 不会吸附敌人，而是飞向被藤蔓抓取的敌人中最强的敌人\n
        范围 +30%
        """
        ...

# 飓风旋枪
# knight/elven_knight/03bb5314ffd41e9458d67ef924fef38f
# 0ee8fa5dc525c1a1f23fc6911e921e4a/03bb5314ffd41e9458d67ef924fef38f
class Skill36(ActiveSkill):
    """
        利用巨剑的旋转产生旋风， 同时将周围的敌人吸附过来并造成多段伤害。
    """
    name = "飓风旋枪"
    learnLv = 40
    masterLv = 60
    maxLv = 70
    position = 6 #TODO
    rangeLv = 2
    cube = 1
    cd = 25
    mp = [40, 2800]
    uuid = "03bb5314ffd41e9458d67ef924fef38f"
    hasVP = True
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
    vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501

    # 旋转的持续时间 : {value0}秒
    # REMOVE: data0 = [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 刺击攻击力 : {value1}%
    # REMOVE: data1 = [0, 7709, 8491, 9273, 10055, 10837, 11619, 12401, 13183, 13965, 14747, 15529, 16311, 17093, 17875, 18657, 19439, 20221, 21003, 21785, 22567, 23349, 24131, 24913, 25695, 26477, 27259, 28041, 28823, 29605, 30388, 31170, 31952, 32734, 33516, 34298, 35080, 35862, 36644, 37426, 38208, 38990, 39772, 40554, 41336, 42118, 42900, 43682, 44464, 45246, 46028, 46810, 47592, 48374, 49156, 49938, 50720, 51502, 52284, 53066, 53848, 54630, 55413, 56195, 56977, 57759, 58541, 59323, 60105, 60887, 61669]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 旋转攻击力 : {value2}% x{value3}
    # REMOVE: data2 = [0, 823, 906, 990, 1073, 1157, 1240, 1324, 1407, 1491, 1574, 1658, 1741, 1825, 1908, 1992, 2075, 2159, 2242, 2326, 2409, 2492, 2576, 2659, 2743, 2826, 2910, 2993, 3077, 3160, 3244, 3327, 3411, 3494, 3578, 3661, 3745, 3828, 3912, 3995, 4079, 4162, 4246, 4329, 4413, 4496, 4580, 4663, 4746, 4830, 4913, 4997, 5080, 5164, 5247, 5331, 5414, 5498, 5581, 5665, 5748, 5832, 5915, 5999, 6082, 6166, 6249, 6333, 6416, 6500, 6583]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # REMOVE: data3 = [0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # [范围信息]
    # 范围比率 : {value4}%
    # REMOVE: data4 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)

    def vp_1(self):
        """
        [飓风旋枪]\n
        生成旋风后， 强制施放[剑盾猛攻]时旋风不会消失\n
        剑气大小 +30%
        """
        ...

    def vp_2(self):
        """
        [飓风旋枪]\n
        将剑插入地面旋转， 生成旋风\n
         - 删除刺击攻击\n
         - 范围内的敌人会被吸附至旋风中心\n
         - 总攻击力相同
        """
        ...

# 天陨断空斩
# knight/elven_knight/a5fa08f5d509e6ff2ebc68856a470b5a
# 0ee8fa5dc525c1a1f23fc6911e921e4a/a5fa08f5d509e6ff2ebc68856a470b5a
class Skill37(ActiveSkill):
    """
        使用强力的连锁攻击粉碎敌人。\n
        施放时发动旋转、 上劈攻击， 最后施放闪光下劈生成冲击波。
    """
    name = "天陨断空斩"
    learnLv = 45
    masterLv = 60
    maxLv = 70
    position = 3 #TODO
    rangeLv = 2
    cube = 2
    cd = 45
    mp = [80, 3500]
    uuid = "a5fa08f5d509e6ff2ebc68856a470b5a"
    hasVP = True
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
    vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501

    # 旋转劈砍攻击力 : {value0}%
    # REMOVE: data0 = [0, 4600, 5067, 5533, 6000, 6467, 6933, 7400, 7867, 8333, 8800, 9267, 9733, 10200, 10667, 11133, 11600, 12067, 12533, 13000, 13467, 13933, 14400, 14867, 15334, 15800, 16267, 16734, 17200, 17667, 18134, 18600, 19067, 19534, 20000, 20467, 20934, 21400, 21867, 22334, 22800, 23267, 23734, 24200, 24667, 25134, 25600, 26067, 26534, 27000, 27467, 27934, 28400, 28867, 29334, 29800, 30267, 30734, 31200, 31667, 32134, 32600, 33067, 33534, 34000, 34467, 34934, 35400, 35867, 36334, 36800]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 上劈攻击力 : {value1}%
    # REMOVE: data1 = [0, 3539, 3897, 4256, 4615, 4974, 5333, 5692, 6051, 6410, 6769, 7128, 7487, 7846, 8205, 8564, 8923, 9282, 9641, 10000, 10359, 10718, 11077, 11436, 11795, 12154, 12513, 12872, 13231, 13590, 13949, 14308, 14667, 15026, 15385, 15744, 16103, 16462, 16821, 17180, 17539, 17898, 18257, 18616, 18975, 19334, 19693, 20052, 20410, 20769, 21128, 21487, 21846, 22205, 22564, 22923, 23282, 23641, 24000, 24359, 24718, 25077, 25436, 25795, 26154, 26513, 26872, 27231, 27590, 27949, 28308]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 闪光下劈的攻击力 : {value2}%
    # REMOVE: data2 = [0, 5308, 5846, 6385, 6923, 7462, 8000, 8539, 9077, 9615, 10154, 10692, 11231, 11769, 12308, 12846, 13385, 13923, 14462, 15000, 15539, 16077, 16616, 17154, 17693, 18231, 18769, 19308, 19846, 20385, 20923, 21462, 22000, 22539, 23077, 23616, 24154, 24693, 25231, 25770, 26308, 26846, 27385, 27923, 28462, 29000, 29539, 30077, 30616, 31154, 31693, 32231, 32770, 33308, 33847, 34385, 34923, 35462, 36000, 36539, 37077, 37616, 38154, 38693, 39231, 39770, 40308, 40847, 41385, 41924, 42462]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 闪光下劈的冲击波攻击力 : {value3}%
    # REMOVE: data3 = [0, 21939, 24164, 26390, 28616, 30841, 33067, 35293, 37518, 39744, 41970, 44195, 46421, 48647, 50872, 53098, 55324, 57549, 59775, 62001, 64226, 66452, 68678, 70903, 73129, 75355, 77580, 79806, 82032, 84257, 86483, 88709, 90934, 93160, 95386, 97611, 99837, 102063, 104288, 106514, 108740, 110965, 113191, 115417, 117642, 119868, 122094, 124319, 126545, 128771, 130996, 133222, 135448, 137673, 139899, 142125, 144350, 146576, 148802, 151027, 153253, 155479, 157704, 159930, 162156, 164381, 166607, 168833, 171058, 173284, 175510]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # [范围信息]
    # 闪光下劈的冲击波大小 : {value4}%
    # REMOVE: data4 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)

    def vp_1(self):
        """
        [天陨断空斩]\n
        上劈后， 在空中追踪并攻击周围最强的敌人\n
         - 按前/后方向键时， 向该方向搜寻敌人\n
         - 删除旋转劈砍\n
         - 总攻击力相同\n
        冲击波范围 +50%
        """
        ...

    def vp_2(self):
        """
        [天陨断空斩]\n
        施放技能过程中施放[生命审判]时， 会在冲击波生成时一同施放该技能\n
         - 适用于[天陨断空斩]的[剑盾猛攻]， 同样适用于一同施放的[生命审判]\n
        冲击波范围 +20%\n
        施放过程中所受伤害 -50%
        """
        ...

# 自然恩泽
# knight/elven_knight/4b2c90ec226fd40e967875aa5eabefb2
# 0ee8fa5dc525c1a1f23fc6911e921e4a/4b2c90ec226fd40e967875aa5eabefb2
class Skill38(PassiveSkill):
    """
        世界树给予星辰之光庇护。\n
        星辰之光受到大自然的庇护， 增加攻击力、 移动速度、 攻击速度以及火、 冰、 光、 暗属性抗性。\n
        世界树会祝福独角兽， 增加[天马流星落]、 [暮光之灵 : 黄昏独角兽]、 [生命之律·神木擎天]的攻击力。
    """
    name = "自然恩泽"
    learnLv = 48
    masterLv = 40
    maxLv = 50
    position = 6 #TODO
    rangeLv = 3
    uuid = "4b2c90ec226fd40e967875aa5eabefb2"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 攻击力增加率 : {value0}%
    # REMOVE: data0 = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 移动速度增加 : {value1}%
    # REMOVE: data1 = [0, 10, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 24, 24, 24, 25]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 攻击速度增加 : {value2}%
    # REMOVE: data2 = [0, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 26, 26, 26, 27, 27, 27, 28, 28, 28, 29, 29, 29, 30, 30, 30, 31, 31, 31]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 所有属性抗性增加 : {value3}
    # REMOVE: data3 = [0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # [天马流星落]攻击力增加率 : {value4}%
    # REMOVE: data4 = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)
    # [暮光之灵 : 黄昏独角兽]攻击力增加率 : {value5}%
    # REMOVE: data5 = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100]# noqa: E501
    data5 = get_data(f'{prefix}/{uuid}', 5)
    # [生命之律·神木擎天]攻击力增加率 : {value6}%
    # REMOVE: data6 = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100]# noqa: E501
    data6 = get_data(f'{prefix}/{uuid}', 6)

# 天马流星落
# knight/elven_knight/1fadde0eece18649caddbca7bd58cc2f
# 0ee8fa5dc525c1a1f23fc6911e921e4a/1fadde0eece18649caddbca7bd58cc2f
class Skill39(ActiveSkill):
    """
        发动十字剑气后， 飞上天空骑乘天马珀伽索斯， 冲向地面歼灭敌人。\n
        可以使用方向键调整冲锋距离。\n
        施放时， 受到精灵的庇护， 恢复自身生命值和魔法值。
    """
    name = "天马流星落"
    learnLv = 50
    masterLv = 40
    maxLv = 50
    position = 3 #TODO
    rangeLv = 5
    cube = 5
    cd = 145
    mp = [400, 8400]
    uuid = "1fadde0eece18649caddbca7bd58cc2f"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 一斩攻击力 : {value0}%
    # REMOVE: data0 = [0, 6264, 7717, 9169, 10622, 12074, 13527, 14979, 16432, 17884, 19337, 20789, 22242, 23694, 25147, 26599, 28052, 29504, 30957, 32409, 33862, 35314, 36767, 38219, 39672, 41125, 42577, 44030, 45482, 46935, 48387, 49840, 51292, 52745, 54197, 55650, 57102, 58555, 60007, 61460, 62912, 64365, 65817, 67270, 68722, 70175, 71627, 73080, 74533, 75985, 77438]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 二斩多段攻击力 : {value1}% x{value2}
    # REMOVE: data1 = [0, 3692, 4548, 5404, 6260, 7116, 7972, 8828, 9684, 10540, 11396, 12252, 13108, 13964, 14820, 15676, 16532, 17388, 18244, 19100, 19956, 20812, 21668, 22524, 23380, 24236, 25092, 25948, 26804, 27660, 28516, 29372, 30228, 31084, 31940, 32796, 33652, 34508, 35364, 36220, 37076, 37932, 38788, 39644, 40500, 41356, 42212, 43068, 43924, 44781, 45637]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # REMOVE: data2 = [0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 天马冲锋攻击力 : {value3}%
    # REMOVE: data3 = [0, 62490, 76980, 91470, 105961, 120451, 134941, 149432, 163922, 178413, 192903, 207393, 221884, 236374, 250864, 265355, 279845, 294335, 308826, 323316, 337806, 352297, 366787, 381278, 395768, 410258, 424749, 439239, 453729, 468220, 482710, 497200, 511691, 526181, 540671, 555162, 569652, 584143, 598633, 613123, 627614, 642104, 656594, 671085, 685575, 700065, 714556, 729046, 743536, 758027, 772517]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # 生命值恢复 : {value4}%
    # REMOVE: data4 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)
    # 魔法值恢复 : {value5}%
    # REMOVE: data5 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data5 = get_data(f'{prefix}/{uuid}', 5)

# 生命审判
# knight/elven_knight/dc1ffbe7bfcc6dc2be737951960da9ad
# 0ee8fa5dc525c1a1f23fc6911e921e4a/dc1ffbe7bfcc6dc2be737951960da9ad
class Skill40(ActiveSkill):
    """
        向前方跳跃， 引发生命爆炸， 对敌人造成伤害。\n
        按住技能键可以蓄气， 可以调整攻击时机， 并且可以保持蓄气姿态到最大持续时间。\n
        中断[剑盾猛攻]施放该技能时， 则会在原地向上跳跃并发动攻击。
    """
    name = "生命审判"
    learnLv = 60
    masterLv = 40
    maxLv = 50
    position = 4 #TODO
    rangeLv = 2
    cube = 1
    cd = 30
    mp = [450, 1560]
    uuid = "dc1ffbe7bfcc6dc2be737951960da9ad"
    hasVP = True
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
    vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501

    # 爆炸攻击力 : {value0}%
    # REMOVE: data0 = [0, 33923, 37364, 40806, 44247, 47689, 51130, 54572, 58013, 61455, 64896, 68338, 71779, 75221, 78662, 82103, 85545, 88986, 92428, 95869, 99311, 102752, 106194, 109635, 113077, 116518, 119960, 123401, 126843, 130284, 133725, 137167, 140608, 144050, 147491, 150933, 154374, 157816, 161257, 164699, 168140, 171582, 175023, 178464, 181906, 185347, 188789, 192230, 195672, 199113, 202555]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 蓄气持续时间上限 : {value1}秒
    # REMOVE: data1 = [0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # [范围信息]
    # 范围 : {value2}px
    # REMOVE: data2 = [0, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)

    def vp_1(self):
        """
        [生命审判]\n
        最后一击时立即恢复周围队友20%的生命值， 并生成生命领域5秒\n
         - 生命领域内的队友每秒恢复4%的生命值\n
         - 进入生命领域时队友增加5%的移动速度， 效果持续20秒
        """
        ...

    def vp_2(self):
        """
        [生命审判]\n
        不会跃起， 在原地直接猛击地面\n
         - 删除蓄气功能\n
        范围 +30%
        """
        ...

# 壁垒突袭
# knight/elven_knight/547ab2b2bd860d3e37355a9cfbc1077c
# 0ee8fa5dc525c1a1f23fc6911e921e4a/547ab2b2bd860d3e37355a9cfbc1077c
class Skill41(ActiveSkill):
    """
        用巨大的盾牌攻击敌人。\n
        攻击时， 盾牌会生成保护自身的屏障， 并使敌人进入失明状态。\n
        按前方向键， 可以竖起盾牌快速前冲攻击敌人。
    """
    name = "壁垒突袭"
    learnLv = 70
    masterLv = 40
    maxLv = 50
    position = 5 #TODO
    rangeLv = 2
    cube = 3
    cd = 50
    mp = [935, 2360]
    uuid = "547ab2b2bd860d3e37355a9cfbc1077c"
    hasVP = True
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
    vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501

    # 盾牌击打攻击力 : {value0}%
    # REMOVE: data0 = [0, 19002, 20930, 22858, 24785, 26713, 28641, 30569, 32497, 34424, 36352, 38280, 40208, 42135, 44063, 45991, 47919, 49846, 51774, 53702, 55630, 57557, 59485, 61413, 63341, 65268, 67196, 69124, 71052, 72979, 74907, 76835, 78763, 80691, 82618, 84546, 86474, 88402, 90329, 92257, 94185, 96113, 98040, 99968, 101896, 103824, 105751, 107679, 109607, 111535, 113462]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 盾牌破碎时攻击力 : {value1}%
    # REMOVE: data1 = [0, 35290, 38870, 42450, 46030, 49610, 53190, 56771, 60351, 63931, 67511, 71091, 74671, 78251, 81831, 85412, 88992, 92572, 96152, 99732, 103312, 106892, 110472, 114053, 117633, 121213, 124793, 128373, 131953, 135533, 139113, 142694, 146274, 149854, 153434, 157014, 160594, 164174, 167754, 171335, 174915, 178495, 182075, 185655, 189235, 192815, 196395, 199976, 203556, 207136, 210716]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 失明几率 : {value2}%
    # REMOVE: data2 = [0, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 失明时间 : {value3}秒
    # REMOVE: data3 = [0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # 屏障生命值 : {value4}
    # REMOVE: data4 = [0, 6043, 6210, 6378, 6545, 6722, 6888, 7057, 7226, 7396, 7565, 7734, 7904, 8073, 8243, 8412, 8581, 8751, 8920, 9089, 9259, 9428, 9598, 9767, 9936, 10106, 10275, 10444, 10614, 10783, 10953, 11122, 11291, 11461, 11630, 11799, 11969, 12138, 12308, 12477, 12646, 12816, 12985, 13154, 13324, 13493, 13663, 13832, 14001, 14171, 14340]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)
    # 屏障持续时间 : {value5}秒
    # REMOVE: data5 = [0, 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18, 18.5, 19, 19.5, 20, 20.5, 21, 21.5, 22, 22.5, 23, 23.5, 24, 24.5, 25, 25.5, 26, 26.5, 27, 27.5, 28, 28.5, 29, 29.5, 30, 30.5, 31, 31.5, 32, 32.5, 33, 33.5, 34, 34.5]# noqa: E501
    data5 = get_data(f'{prefix}/{uuid}', 5)
    # 前冲距离上限 : {value6}px
    # REMOVE: data6 = [0, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300]# noqa: E501
    data6 = get_data(f'{prefix}/{uuid}', 6)
    # [范围信息]
    # 范围比率 : {value7}%
    # REMOVE: data7 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data7 = get_data(f'{prefix}/{uuid}', 7)

    def vp_1(self):
        """
        [壁垒突袭]\n
        生成巨大的盾牌后， 出现古代野猪击碎盾牌， 向前方突进\n
         - 古代野猪攻击力与盾牌破碎攻击力相同\n
         - 只适用盾牌破碎或古代野猪突进1次攻击\n
        范围 +50%\n
        施放时， 初始化[愤怒冲撞]冷却时间\n
        [愤怒冲撞]\n
        攻击力 -14.3%
        """
        ...

    def vp_2(self):
        """
        [壁垒突袭]\n
        施放技能时进入无敌状态\n
        [壁垒突袭]屏障效果变更\n
         - 删除[壁垒突袭]屏障生命值\n
         - [壁垒突袭]屏障持续时间 -50%\n
         - [壁垒突袭]屏障持续期间所受伤害 -50%
        """
        ...

# 信仰鼓舞
# knight/elven_knight/2c9d9a36c8401bddff6cdb80fab8dc24
# 0ee8fa5dc525c1a1f23fc6911e921e4a/2c9d9a36c8401bddff6cdb80fab8dc24
class Skill42(PassiveSkill):
    """
        [剑盾猛攻]连锁起始数增加到3， 并且[剑盾猛攻]的连锁数上限增加1。 同时增加大地女神的基本攻击力和技能攻击力。\n
        [防御是最好的攻击。]
    """
    name = "信仰鼓舞"
    learnLv = 75
    masterLv = 40
    maxLv = 50
    position = 3 #TODO
    rangeLv = 3
    uuid = "2c9d9a36c8401bddff6cdb80fab8dc24"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # [剑盾猛攻]连锁起始数值 : {value0}
    # REMOVE: data0 = [0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 基本攻击力和技能攻击力增加率 : {value1}%
    # REMOVE: data1 = [0, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 连锁数上限增加 : {value2}
    # REMOVE: data2 = [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)

# 剑盾强袭
# knight/elven_knight/b89c9ab317bc0a443f6497b7cca2f6a8
# 0ee8fa5dc525c1a1f23fc6911e921e4a/b89c9ab317bc0a443f6497b7cca2f6a8
class Skill43(ActiveSkill):
    """
        把叠加在的[剑盾猛攻]的力量浓缩到盾牌中进行攻击。\n
        根据[剑盾猛攻]的阶段增加不同的伤害。 攻击后， [剑盾猛攻]的连锁将会被重置。
    """
    name = "剑盾强袭"
    learnLv = 75
    masterLv = 40
    maxLv = 50
    position = 4 #TODO
    rangeLv = 2
    cube = 3
    cd = 40
    mp = [580, 4500]
    uuid = "b89c9ab317bc0a443f6497b7cca2f6a8"
    hasVP = True
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
    vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501

    # 攻击力 : {value0}%
    # REMOVE: data0 = [0, 56235, 61940, 67645, 73350, 79055, 84760, 90465, 96170, 101875, 107580, 113285, 118990, 124695, 130400, 136105, 141810, 147515, 153220, 158925, 164630, 170335, 176040, 181745, 187450, 193155, 198860, 204565, 210270, 215975, 221680, 227385, 233090, 238795, 244500, 250205, 255910, 261615, 267320, 273025, 278730, 284435, 290140, 295845, 301550, 307255, 312960, 318665, 324370, 330075, 335780]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # [剑盾猛攻]连锁伤害额外增加 : +{value1}%
    # REMOVE: data1 = [0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # [范围信息]
    # 范围比率 : {value2}%
    # REMOVE: data2 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)

    def vp_1(self):
        """
        [剑盾强袭]\n
        使用技能后， 可以连接[剑盾猛攻]\n
         - 在[剑盾猛攻]连锁数6层状态下施放[剑盾强袭]时， 2秒内连锁的所有区域变更为成功区域\n
        范围 +20%
        """
        ...

    def vp_2(self):
        """
        [剑盾强袭]\n
        施放时， 自动施放当前已学习的[自然守护]技能\n
         - 无论[自然守护]技能的冷却时间是否适用， 都会施放\n
         - 未学习[自然守护]技能状态下无法施放\n
        如果没有命中的敌人， 剩余冷却时间缩短为5秒\n
        施放过程中免疫异常状态
        """
        ...

# 自然之怒
# knight/elven_knight/7cf17936a039b418660424125dc968d7
# 0ee8fa5dc525c1a1f23fc6911e921e4a/7cf17936a039b418660424125dc968d7
class Skill44(ActiveSkill):
    """
        用盾牌对敌人进行攻击， 并召唤藤蔓束缚敌人。\n
        升起的藤蔓会拉拽周围的敌人并进行束缚。
    """
    name = "自然之怒"
    learnLv = 80
    masterLv = 40
    maxLv = 50
    position = 3 #TODO
    rangeLv = 2
    cube = 5
    cd = 45
    mp = [800, 6000]
    uuid = "7cf17936a039b418660424125dc968d7"
    hasVP = True
    hasUP = True
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
    vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501

    # 盾牌攻击力 : {value0}%
    # REMOVE: data0 = [0, 11266, 12409, 13552, 14695, 15838, 16981, 18124, 19267, 20410, 21553, 22696, 23839, 24982, 26125, 27268, 28411, 29553, 30696, 31839, 32982, 34125, 35268, 36411, 37554, 38697, 39840, 40983, 42126, 43269, 44412, 45555, 46698, 47841, 48984, 50127, 51270, 52413, 53555, 54698, 55841, 56984, 58127, 59270, 60413, 61556, 62699, 63842, 64985, 66128, 67271]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 藤蔓多段攻击力 : {value1}% x{value2}
    # REMOVE: data1 = [0, 4205, 4632, 5059, 5485, 5912, 6339, 6765, 7192, 7619, 8045, 8472, 8899, 9325, 9752, 10178, 10605, 11032, 11458, 11885, 12312, 12738, 13165, 13592, 14018, 14445, 14871, 15298, 15725, 16151, 16578, 17005, 17431, 17858, 18285, 18711, 19138, 19565, 19991, 20418, 20844, 21271, 21698, 22124, 22551, 22978, 23404, 23831, 24258, 24684, 25111]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # REMOVE: data2 = [0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 控制持续时间 : {value3}秒
    # REMOVE: data3 = [0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # 藤蔓爆炸攻击力 : {value4}%
    # REMOVE: data4 = [0, 28101, 30952, 33803, 36653, 39504, 42355, 45206, 48057, 50908, 53758, 56609, 59460, 62311, 65162, 68013, 70863, 73714, 76565, 79416, 82267, 85118, 87968, 90819, 93670, 96521, 99372, 102222, 105073, 107924, 110775, 113626, 116477, 119327, 122178, 125029, 127880, 130731, 133582, 136432, 139283, 142134, 144985, 147836, 150687, 153537, 156388, 159239, 162090, 164941, 167791]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)
    # [范围信息]
    # 范围比率 : {value5}%
    # REMOVE: data5 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
    data5 = get_data(f'{prefix}/{uuid}', 5)

    def vp_1(self):
        """
        [自然之怒]\n
        可分别使用盾牌打击与藤蔓攻击\n
         - 施放技能时， 使用盾牌打击\n
         - 再次按技能键时， 使用藤蔓多段攻击与爆炸攻击\n
         - 施放技能后10秒内， 可以再次按技能键\n
         - 施放技能与再次按技能键时， 可连接[剑盾猛攻]\n
         - 对被藤蔓命中的敌人附加控制效果
        """
        ...

    def vp_2(self):
        """
        [自然之怒]\n
        删除盾牌攻击的攻击力\n
         - 保留附加控制效果的功能\n
        藤蔓攻击变更为沿地面向前方大范围生长的荆棘攻击\n
         - 多段攻击次数 -50%\n
         - 取消藤蔓爆炸攻击\n
         - 总攻击力相同\n
         - 对被荆棘攻击命中的敌人附加出血异常状态\n
         - 对被荆棘攻击命中的敌人附加额外控制效果
        """
        ...

# 暮光之灵 : 黄昏独角兽
# knight/elven_knight/7f80b887a09e88e2c4728c898bd73654
# 0ee8fa5dc525c1a1f23fc6911e921e4a/7f80b887a09e88e2c4728c898bd73654
class Skill45(ActiveSkill):
    """
        召唤古代幻兽——黄昏独角兽， 进行3段突击。 最后一次突击时， 独角兽会发出耀眼的星光， 并对大范围的敌人造成伤害。
    """
    name = "暮光之灵 : 黄昏独角兽"
    learnLv = 85
    masterLv = 40
    maxLv = 50
    position = 4 #TODO
    rangeLv = 5
    cube = 10
    cd = 180
    mp = [2500, 5000]
    uuid = "7f80b887a09e88e2c4728c898bd73654"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 突击攻击力 : {value0}%
    # REMOVE: data0 = [0, 12191, 15018, 17845, 20672, 23499, 26326, 29153, 31980, 34808, 37635, 40462, 43289, 46116, 48943, 51770, 54597, 57424, 60251, 63078, 65905, 68732, 71559, 74386, 77213, 80040, 82867, 85694, 88521, 91348, 94175, 97002, 99829, 102656, 105483, 108310, 111137, 113964, 116791, 119618, 122445, 125272, 128099, 130926, 133753, 136580, 139407, 142234, 145061, 147888, 150715]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 突击次数 : {value1}次
    # REMOVE: data1 = [0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 最后一击攻击力 : {value2}%
    # REMOVE: data2 = [0, 146298, 180222, 214146, 248070, 281994, 315918, 349842, 383766, 417690, 451614, 485538, 519462, 553386, 587310, 621234, 655158, 689083, 723007, 756931, 790855, 824779, 858703, 892627, 926551, 960475, 994399, 1028323, 1062247, 1096171, 1130095, 1164019, 1197943, 1231868, 1265792, 1299716, 1333640, 1367564, 1401488, 1435412, 1469336, 1503260, 1537184, 1571108, 1605032, 1638956, 1672880, 1706804, 1740728, 1774653, 1808577]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # 星光多段攻击攻击力 : {value3}% x{value4}
    # REMOVE: data3 = [0, 4064, 5006, 5948, 6891, 7833, 8775, 9718, 10660, 11603, 12545, 13487, 14430, 15372, 16314, 17257, 18199, 19141, 20084, 21026, 21968, 22911, 23853, 24795, 25738, 26680, 27622, 28565, 29507, 30449, 31392, 32334, 33276, 34219, 35161, 36103, 37046, 37988, 38930, 39873, 40815, 41757, 42700, 43642, 44584, 45527, 46469, 47411, 48354, 49296, 50238]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)
    # REMOVE: data4 = [0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]# noqa: E501
    data4 = get_data(f'{prefix}/{uuid}', 4)

# 生命的恩宠
# knight/elven_knight/aa51c4ddf1659092fa9ed612b9837061
# 0ee8fa5dc525c1a1f23fc6911e921e4a/aa51c4ddf1659092fa9ed612b9837061
class Skill46(PassiveSkill):
    """
        皓曦·精灵骑士与大自然更深入地交流， 化作大自然的一部分， 通过尤迪亚的神物获得强大的生命之力。\n
        增加基本攻击力和转职技能攻击力， 部分技能获得附加效果。\n
    [剑盾猛攻]\n
        进入地下城时， 自动施放； 增加[剑盾猛攻]能量持续时间。 增加[剑盾猛攻]能量重叠持续区域， 减少[剑盾猛攻]成功时持续区域的减少量。\n
        增加盾牌攻击 (挥击、 推进攻击) 的Y轴范围； 盾牌攻击命中时， 敌人会被渐渐拉到皓曦·精灵骑士的前方。\n
    [精灵之跃]\n
        使用[剑盾猛攻]强制中断后施放时， 冲撞判定和攻击消失， 追击命中的敌人当中最强大的敌人。\n
        无法追击一定范围之外的敌人； 发动追击功能时， 无法蓄气后使用。
    """
    name = "生命的恩宠"
    learnLv = 95
    masterLv = 40
    maxLv = 50
    position = 5 #TODO
    rangeLv = 3
    uuid = "aa51c4ddf1659092fa9ed612b9837061"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 基本攻击力和转职技能攻击力增加率 : {value0}%
    # REMOVE: data0 = [0, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # [剑盾猛攻]能量持续时间 : +5秒

# 荆棘之城
# knight/elven_knight/863295a0fc634cf5fcc01e82a735fd6b
# 0ee8fa5dc525c1a1f23fc6911e921e4a/863295a0fc634cf5fcc01e82a735fd6b
class Skill47(ActiveSkill):
    """
        挥动尤迪亚神物之一的尤迪亚的树皮进行攻击。 命中敌人时， 尤迪亚的树皮分散成碎片， 在前方地面扎根， 如同尖刺般生长并攻击敌人； 未命中时， 向前方撒下附着在尤迪亚的树皮上的种子， 种子如同尖刺般生长并攻击敌人。\n
        施放时， [剑盾猛攻]连锁重叠数增加到6。
    """
    name = "荆棘之城"
    learnLv = 95
    masterLv = 40
    maxLv = 50
    position = 7 #TODO
    rangeLv = 2
    cube = 7
    cd = 60
    mp = [800, 6667]
    uuid = "863295a0fc634cf5fcc01e82a735fd6b"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 盾牌挥击攻击力 : {value0}%
    # REMOVE: data0 = [0, 10617, 11694, 12771, 13848, 14925, 16002, 17079, 18156, 19233, 20310, 21387, 22464, 23541, 24618, 25695, 26773, 27850, 28927, 30004, 31081, 32158, 33235, 34312, 35389, 36466, 37543, 38620, 39697, 40774, 41851, 42928, 44005, 45083, 46160, 47237, 48314, 49391, 50468, 51545, 52622, 53699, 54776, 55853, 56930, 58007, 59084, 60161, 61238, 62315, 63392]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 根部攻击力 : {value1}%
    # REMOVE: data1 = [0, 95550, 105244, 114937, 124631, 134324, 144018, 153711, 163405, 173098, 182792, 192485, 202179, 211872, 221566, 231259, 240953, 250646, 260340, 270033, 279727, 289420, 299114, 308807, 318501, 328195, 337888, 347582, 357275, 366969, 376662, 386356, 396049, 405743, 415436, 425130, 434823, 444517, 454210, 463904, 473597, 483291, 492984, 502678, 512371, 522065, 531758, 541452, 551145, 560839, 570532]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)

# 生命之律·神木擎天
# knight/elven_knight/3153ca0e6752a6283412c59c5ec8e002
# 0ee8fa5dc525c1a1f23fc6911e921e4a/3153ca0e6752a6283412c59c5ec8e002
class Skill48(ActiveSkill):
    """
        用和平之树尤迪亚的树皮锤击地面， 创造出生命庭院。 然后， 跳跃到在生命庭院中生长的尤迪亚的顶端， 装备尤迪亚的神物“伟大自然”后， 撞击地面， 使周围充满大自然的气息。\n
    [三次觉醒技能]\n
        使用三次觉醒技能时， 与关联的技能共享冷却时间。\n
        若关联的技能还在冷却中， 则无法使用三次觉醒技能。
    """
    name = "生命之律·神木擎天"
    learnLv = 100
    masterLv = 40
    maxLv = 50
    position = 5 #TODO
    rangeLv = 5
    cube = 15
    cd = 290
    mp = [4028, 8056]
    uuid = "3153ca0e6752a6283412c59c5ec8e002"
    hasVP = False
    hasUP = False
    custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501

    # 生命庭院铺开攻击力 : {value0}%
    # REMOVE: data0 = [0, 54787, 67491, 80195, 92899, 105604, 118308, 131012, 143716, 156420, 169124, 181829, 194533, 207237, 219941, 232645, 245350, 258054, 270758, 283462, 296166, 308871, 321575, 334279, 346983, 359687, 372391, 385096, 397800, 410504, 423208, 435912, 448617, 461321, 474025, 486729, 499433, 512137, 524842, 537546, 550250, 562954, 575658, 588363, 601067, 613771, 626475, 639179, 651884, 664588, 677292]# noqa: E501
    data0 = get_data(f'{prefix}/{uuid}', 0)
    # 伟大自然地面撞击攻击力 : {value1}%
    # REMOVE: data1 = [0, 438294, 539928, 641561, 743195, 844828, 946462, 1048095, 1149729, 1251362, 1352996, 1454629, 1556263, 1657896, 1759530, 1861163, 1962797, 2064430, 2166064, 2267697, 2369331, 2470964, 2572598, 2674231, 2775865, 2877498, 2979132, 3080765, 3182398, 3284032, 3385665, 3487299, 3588932, 3690566, 3792199, 3893833, 3995466, 4097100, 4198733, 4300367, 4402000, 4503634, 4605267, 4706901, 4808534, 4910168, 5011801, 5113435, 5215068, 5316702, 5418335]# noqa: E501
    data1 = get_data(f'{prefix}/{uuid}', 1)
    # 冲击波多段攻击力 : {value2}% x{value3}
    # REMOVE: data2 = [0, 9131, 11248, 13366, 15483, 17601, 19718, 21835, 23953, 26070, 28187, 30305, 32422, 34540, 36657, 38774, 40892, 43009, 45126, 47244, 49361, 51478, 53596, 55713, 57831, 59948, 62065, 64183, 66300, 68417, 70535, 72652, 74769, 76887, 79004, 81122, 83239, 85356, 87474, 89591, 91708, 93826, 95943, 98060, 100178, 102295, 104413, 106530, 108647, 110765, 112882]# noqa: E501
    data2 = get_data(f'{prefix}/{uuid}', 2)
    # REMOVE: data3 = [0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6]# noqa: E501
    data3 = get_data(f'{prefix}/{uuid}', 3)


class classChange(Character):
    def __init__(self, equVersion):

        self.name = 'elven_knight'
        self.nameCN = '皓曦·精灵骑士'
        self.role = 'knight'
        self.角色 = '守护者'
        self.职业 = '精灵骑士'
        self.jobId = '0ee8fa5dc525c1a1f23fc6911e921e4a'
        self.jobGrowId = '37495b941da3b1661bc900e68ef3b2c6'

        self.武器选项 = [] # TODO
        self.输出类型选项 = [] # TODO
        self.输出类型 = '' # TODO
        self.防具精通属性 = [''] # TODO
        self.防具类型 = ''
        self.buff = ... # TODO

        super().__init__(equVersion, __name__)
